授予对数据库的SQL Server登录访问权限 - SQL Server

时间:2010-05-18 14:41:41

标签: sql-server database login

我想授予对SQL Server登录数据库的访问权限。我知道sp_grantdbaccess,但不推荐使用它。我可以使用什么,以及如何检查登录是否还无法访问数据库?

场景:UserA创建数据库 - 在sys.database_principals中,我有一个名为dbo的条目,以及用户的sid。我尝试再次授予UserA权限:我尝试通过name ='UserA'对sys.database_principals进行选择,但由于名称是dbo而不是UserA,我收到错误 - '登录已经有一个不同用户名下的帐户'。如何在没有sid的情况下确定用户是否具有数据库访问权限?

2 个答案:

答案 0 :(得分:2)

您可能需要CREATE USER

e.g。

CREATE USER bobuser FOR LOGIN boblogin

sys.database_principals安全目录有一个数据库用户列表,因此您可以确保您没有该名称的用户。

答案 1 :(得分:0)

首先,您需要在该数据库中为相关登录创建一个用户。为此,请使用Create User。如果要确定用户是否已存在,可以通过过滤sys.database_principals来使用type = 'U'目录视图。如果您想确定某个用户是否已加入某个角色,可以使用sys.database_role_members