Tạo người dùng cho một cơ sở dữ liệu chứa duy nhất


9

Tôi khá mới làm việc với MSSQL và có phiên bản 2012 tại thời điểm này. Những gì tôi đang cố gắng làm là tạo một người dùng cho cơ sở dữ liệu chứa và chỉ cung cấp cho người dùng đó quyền truy cập vào cơ sở dữ liệu đó.

Tôi sẽ gọi SQL này từ JAVA bằng cách sử dụng một câu lệnh được chuẩn bị.

Câu trả lời:


12

Để tạo một người dùng có trong SQL Server 2012 xác thực tại cơ sở dữ liệu, bạn có thể làm như sau:

use YourDatabase
go

create user YourContainedUser
with password = 'yourPassword'
go

Trước tiên, bạn sẽ phải đảm bảo rằng nó contained database authenticationđược bật và cơ sở dữ liệu được đặt với ngăn chặn một phần:

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

alter database YourDatabase
set containment = partial
go

Khi các lệnh trên được thực thi, bạn sẽ có thể tạo người dùng chứa của mình với CREATE USERcâu lệnh như được giải thích ở trên.

EDIT : Nhận xét và điểm tuyệt vời của @AaronBertrand:

Ngoài ra, chuỗi kết nối của bạn hoàn toàn phải sử dụng tên cơ sở dữ liệu như một phần của thông tin đăng nhập - nếu bạn không chỉ định cơ sở dữ liệu, SQL Server sẽ không kiểm tra tất cả các cơ sở dữ liệu và cố gắng tìm ra ý nghĩa của bạn. Và mã của bạn không thể thực hiện bất kỳ truy vấn cơ sở dữ liệu chéo nào trong trường hợp giới hạn không rõ ràng.


Cảm ơn tất cả sự giúp đỡ, một điều để bình luận là, trong khi tôi đã cố gắng làm điều này với các câu lệnh JDBC của Java. Tôi đã không thể làm điều đó với việc sử dụng PreparedStaments, JDBC chỉ không hài lòng với điều này. Vì vậy, tôi đã sử dụng một chuỗi liên kết như là một tuyên bố.
imellan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.