0

カタログ\Security\Logins\に新しいログインを作成しました-パスワードtttを使用したttt。次に、ロールdb_datawriterでユーザーtttを作成しました。

ユーザーがadmin(db_owner)であるか、ユーザーであるかを確認するには、SQL MSで関数を呼び出しIS_MEMBER('db_owner')(ログインtttとパスワードtttでSQL認証を使用して実行)、結果は0になります。

この関数をC#で呼び出すと、結果は常にtrue(または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

Database オブジェクトではなく、smo User オブジェクトで「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 に答える