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

ime*_*lan 10 sql-server sql-server-2012

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

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

Tho*_*ger 14

要在 SQL Server 2012 中创建在数据库中进行身份验证的包含用户,您可以执行以下操作:

use YourDatabase
go

create user YourContainedUser
with password = 'yourPassword'
go
Run Code Online (Sandbox Code Playgroud)

您必须首先确保contained database authentication在实例上启用,并且数据库设置为部分包含:

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

alter database YourDatabase
set containment = partial
go
Run Code Online (Sandbox Code Playgroud)

执行上述命令后,您应该能够使用上述CREATE USER语句创建包含的用户。

编辑:@AaronBertrand 的精彩评论和观点:

此外,您的连接字符串绝对必须使用数据库名称作为凭据的一部分 - 如果您不指定数据库,SQL Server 不会检查所有数据库并尝试找出您可能指的是哪个数据库。如果限制不明确,您的代码将无法执行任何跨数据库查询。