0

我在目录 \Security\Logins\ 中创建了新的登录名 - ttt,密码为 ttt。然后我创建了角色 db_datawriter 的用户 ttt。

要检查用户是 admin( db_owner) 还是只是用户,我在 SQL MS 中调用函数IS_MEMBER('db_owner')(使用登录 ttt 和密码 ttt 的 SQL 身份验证运行),结果为 0。

当我在 C# 中调用此函数时,结果始终为真(或 1)。

 Database obj = new Database(new Server(@"ADMIN-PC\MSSQLSERVER2"),"ShoppingMall");
 bool user = obj.IsMember("db_owner");

Databasemicrosoft.sqlserver.management.smo 连接字符串中的一个类是

  string connection_string = @"Data Source=ADMIN-PC\MSSQLSERVER2;InitialCatalog=ShoppingMall;User ID=ttt;Password=ttt";

有什么问题?

4

1 回答 1

1

我相信您需要在 smo 用户对象上调用“IsMember”方法,而不是数据库对象。

Database db = new Database(new Server(@"ADMIN-PC\MSSQLSERVER2"),"ShoppingMall");
User user = new User(db, "ttt");
bool isMember = user.IsMember("db_owner");
于 2012-10-07T00:58:40.427 回答