Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过t-sql或sql登录用户的存储过程在sql server中设置数据库角色成员身份_C#_Sql Server - Fatal编程技术网

C# 通过t-sql或sql登录用户的存储过程在sql server中设置数据库角色成员身份

C# 通过t-sql或sql登录用户的存储过程在sql server中设置数据库角色成员身份,c#,sql-server,C#,Sql Server,我已使用sql身份验证创建了一个登录名,并为此登录名分配了一个数据库,并为此登录名创建了用户。现在我想通过T-sql或存储过程设置数据库角色成员身份。请任何人指导我。 如果我使用EXEC sp_addrolember N'db_datareader',N'Domain\User',它将为用户设置成员身份,而不是登录。 这里我附上了一张图片您不能向数据库角色添加登录名。登录是服务器主体,用户是数据库主体 如果您从GUI(根据您的图像)执行此操作,SSMS将检测您是否有映射到该登录的现有用户。如果您

我已使用sql身份验证创建了一个登录名,并为此登录名分配了一个数据库,并为此登录名创建了用户。现在我想通过T-sql或存储过程设置数据库角色成员身份。请任何人指导我。 如果我使用EXEC sp_addrolember N'db_datareader',N'Domain\User',它将为用户设置成员身份,而不是登录。
这里我附上了一张图片

您不能向数据库角色添加登录名。登录是服务器主体,用户是数据库主体

如果您从GUI(根据您的图像)执行此操作,SSMS将检测您是否有映射到该登录的现有用户。如果您这样做,它将运行

ALTER ROLE [db_datareader] ADD MEMBER [domain\user]

如果没有,它将首先创建一个具有相同登录名的用户,然后将该用户添加到DB角色。如果您试图通过TSQL向DB角色添加登录名,则会失败。

谢谢您提供的信息。我还有一个问题,我们可以通过TSQL或存储过程为sql用户设置拥有的架构吗?将SCHEMA::myschema上的授权更改为roopesha请记住,架构是数据库对象,因此只能由用户拥有,而不能由登录名拥有。