授予数据库的完整SQL Server权限

时间:2018-11-28 19:10:56

标签: sql-server permissions roles

我如何在不指定数据库名称的情况下,让用户(创建时没有登录)完全控制所包含的数据库,而无需指定数据库名称,例如,将GRANT CONTROL ON DATABASE :: DatabaseName转换为UserName,却不使用数据库名称?我认为它会将GRANT ALTER ANY SCHEMA包括到UserName中,但是我不确定我还需要授予什么,或者是否有更好的方法。谢谢。

2 个答案:

答案 0 :(得分:2)

如果您确实希望他们能够在该数据库中执行任何操作,则只需将它们添加到db_owner角色中即可:

USE ContainedDatabase;
GO
ALTER ROLE db_owner ADD MEMBER [username];

如果希望更精细,可以将它们添加到较小的角色中,例如db_ddladmindb_securityadmin等。您可以在此处查看内置角色的列表:

每个角色固有的权限:

如果不适合,则可以create your own roles,将用户添加到该角色,并为创建的那个角色授予特定的权限(和/或将他们添加到其他角色)。将权限应用于角色而不是直接应用于用户之间的区别只是重复使用-如果您要添加五个要应用相同权限的用户,则只需将他们添加到自定义角色,而不是应用那些细化权限或角色分配给所有5个用户。

答案 1 :(得分:0)

  1. 打开SQL Server Management Studio并连接到服务器。
  2. 在对象资源管理器中,展开服务器下的“安全”文件夹。
  3. 右键单击“登录”文件夹,然后选择“新登录...”
  4. 以“域\用户名”格式添加用户名。您也可以通过将域组更改为“ Domain \ GroupName”来添加域组。 5.如果希望该用户对SQL Server实例具有完全访问权限,则可以选择“服务器角色”选项卡。添加角色“ sysadmin”将赋予他们对服务器的完全访问权限,以执行诸如更新数据库,备份数据库,删除数据库之类的操作。
  5. 单击“确定”,您的用户将被创建并有权访问您的数据库。

  6. 选择“用户映射”选项卡。在此屏幕的上半部分,选中数据库名称旁边的框。突出显示数据库并选中将用户映射到数据库的框后,即可向用户添加角色成员身份。用于访问数据库。

  7. 单击“确定”,您的用户将被创建并有权访问您的数据库。