การสร้างผู้ใช้สำหรับฐานข้อมูลเดียวที่มีอยู่


9

ฉันใหม่สวยที่ทำงานกับ MSSQL และมีรุ่น 2012 ในขณะนี้ สิ่งที่ฉันพยายามจะทำคือสร้างผู้ใช้สำหรับฐานข้อมูลที่มีอยู่และให้สิทธิ์การเข้าถึงแก่ผู้ใช้ในฐานข้อมูลนั้นเท่านั้น

ฉันจะเรียกใช้ SQL นี้จาก JAVA โดยใช้คำสั่งที่เตรียมไว้

คำตอบ:


12

ในการสร้างผู้ใช้ที่มีอยู่ใน SQL Server 2012 ที่รับรองความถูกต้องที่ฐานข้อมูลคุณสามารถทำสิ่งต่อไปนี้:

use YourDatabase
go

create user YourContainedUser
with password = 'yourPassword'
go

คุณจะต้องตรวจสอบให้แน่ใจว่าcontained database authenticationเปิดใช้งานอินสแตนซ์ก่อนและตั้งค่าฐานข้อมูลด้วยการบรรจุบางส่วน:

exec sp_configure 'contained database authentication', 1
go
reconfigure
go

alter database YourDatabase
set containment = partial
go

เมื่อคำสั่งข้างต้นถูกดำเนินการคุณควรจะสามารถสร้างผู้ใช้ที่มีอยู่ของคุณด้วยCREATE USERคำสั่งตามที่อธิบายไว้ข้างต้น

แก้ไข : ความคิดเห็นที่ดีและคะแนนโดย @AaronBertrand:

สตริงการเชื่อมต่อของคุณจะต้องใช้ชื่อฐานข้อมูลเป็นส่วนหนึ่งของข้อมูลประจำตัวด้วย - ถ้าคุณไม่ได้ระบุฐานข้อมูล SQL Server จะไม่ตรวจสอบฐานข้อมูลทั้งหมด และรหัสของคุณไม่สามารถทำการสืบค้นข้ามฐานข้อมูลใด ๆ ในกรณีที่ข้อ จำกัด ไม่ชัดเจน


ขอบคุณสำหรับความช่วยเหลือทุกสิ่งสิ่งหนึ่งที่แสดงความคิดเห็นคือในขณะที่ฉันพยายามทำกับงบ Java JDBC ฉันไม่สามารถทำได้ด้วยการใช้ PreparedStaments JDBC รู้สึกไม่พอใจกับสิ่งนี้ ดังนั้นฉันจึงใช้สตริง concated เป็นคำสั่ง
imellan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.