为SQL Server数据库创建用户并通过C#.net应用程序访问

时间:2012-11-28 13:51:46

标签: c# .net sql-server sql-server-2008

我已经为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#代码

等待您的宝贵回复和评论

2 个答案:

答案 0 :(得分:0)

是的,这是预期的。连接字符串包含连接到服务器所需的凭据。通常在应用程序和数据库之间有一个连接字符串,以优化资源并利用连接池等。

不同的用户可能在系统中拥有不同的权限,但可以通过授权处理,而不是连接字符串。

答案 1 :(得分:0)

EXECUTE AS Clause

  

EXECUTE AS子句中指定的用户名或登录名必须作为a存在   sys.database_principals或sys.server_principals中的principal,   分别,或者create或alter模块操作失败。   此外,创建或更改模块的用户必须具有   对委托人的IMPERSONATE权限。

你满足那些条件吗?