我已经为SQL Server数据库创建了用户。它创造得很好。
我的问题是,当我通过执行以下代码访问应用程序时,它不会切换到我指定为
的用户exec as user='myuser'
ALTER USER myuser WITH DEFAULT_SCHEMA=maindb
EXEC sp_addrolemember N'db_owner', N'myuser'
我将查询作为
运行DbCommand command = ds.CreateCommand();
command.CommandText = "exec as user='myuser'";
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
来自C#代码
等待您的宝贵回复和评论
答案 0 :(得分:0)
不同的用户可能在系统中拥有不同的权限,但可以通过授权处理,而不是连接字符串。
答案 1 :(得分:0)
EXECUTE AS子句中指定的用户名或登录名必须作为a存在 sys.database_principals或sys.server_principals中的principal, 分别,或者create或alter模块操作失败。 此外,创建或更改模块的用户必须具有 对委托人的IMPERSONATE权限。
你满足那些条件吗?