在下面的示例中,我向Windows身份验证的用户授予权限(仅以前存在默认的“公共”服务器角色,没有添加用户映射或安全对象),但它还在创建一个用户架构:
--Database Context
USE [master]
--Role Memberships
EXEC sp_addrolemember @rolename=[db_datareader],@membername=[Username]
EXEC sp_addrolemember @rolename=[db_datawriter],@membername=[Username]
--Database Level Permissions
GRANT CONNECT TO [Username]
--Set default schema
ALTER USER [Username] WITH default_schema = dbo
虽然权限设置正确,但我不清楚为什么它还会创建用户架构。我已经在线检查过,但看不到任何可以解释的信息。
这是sp_addrolemember的结果,因为用户不存在于数据库中?