我如何在不指定数据库名称的情况下,让用户(创建时没有登录)完全控制所包含的数据库,而无需指定数据库名称,例如,将GRANT CONTROL ON DATABASE :: DatabaseName转换为UserName,却不使用数据库名称?我认为它会将GRANT ALTER ANY SCHEMA包括到UserName中,但是我不确定我还需要授予什么,或者是否有更好的方法。谢谢。
答案 0 :(得分:2)
如果您确实希望他们能够在该数据库中执行任何操作,则只需将它们添加到db_owner
角色中即可:
USE ContainedDatabase;
GO
ALTER ROLE db_owner ADD MEMBER [username];
如果希望更精细,可以将它们添加到较小的角色中,例如db_ddladmin
,db_securityadmin
等。您可以在此处查看内置角色的列表:
每个角色固有的权限:
如果不适合,则可以create your own roles,将用户添加到该角色,并为创建的那个角色授予特定的权限(和/或将他们添加到其他角色)。将权限应用于角色而不是直接应用于用户之间的区别只是重复使用-如果您要添加五个要应用相同权限的用户,则只需将他们添加到自定义角色,而不是应用那些细化权限或角色分配给所有5个用户。
答案 1 :(得分:0)
单击“确定”,您的用户将被创建并有权访问您的数据库。
选择“用户映射”选项卡。在此屏幕的上半部分,选中数据库名称旁边的框。突出显示数据库并选中将用户映射到数据库的框后,即可向用户添加角色成员身份。用于访问数据库。