为一个包含的数据库创建用户


9

我是使用MSSQL的新手,目前有2012版本。我想要做的是为包含的数据库创建一个用户,并授予该用户仅对该数据库的访问权限。

我将使用准备好的语句从JAVA调用此SQL。

Answers:


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对此并不满意。所以我用了一个简短的字符串作为声明。
imellan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.