2011-10-25 6 views
1

SMOを使用してSQL Server 2005で新しいログインを作成する必要があります。新しいログインのデータベースのマッピング

....

ServerConnection connection = new Microsoft.SqlServer.Management.Common.ServerConnection(Server, Server_UserName, Server_Password); 
Microsoft.SqlServer.Management.Smo.Server sqlServer = new Microsoft.SqlServer.Management.Smo.Server(connection); 

// Creating Login 
Login login = new Login(sqlServer, "loginName"); 
login.LoginType = LoginType.SqlLogin; 
login.Create("loginPassword"); 
login.AddToRole("sysadmin"); 
login.AddToRole("serveradmin");  

、今私は(SQL Server Management Studioで)ユーザーマッピング]タブ内のすべてのデータベースがチェックされることを必要とする:

私はこのコードを使用して新しいログインを作成します

SMOでどうすればいいですか?すべてのデータベースへのユーザーのマッピング

答えて

1

public static void MapUserToAllTheDatabases(String Server, String Server_UserName, String Server_Password, String LoginName,String user_Username) 
    { 
     ServerConnection conn = new ServerConnection(Server, Server_UserName, Server_Password); 
     Server srv = new Server(conn); 
     DatabaseCollection dbs = srv.Databases; 
     foreach (Database d in dbs) 
     { 
      bool ifExists = false; 
      foreach (User user in d.Users) 
       if (user.Name == user_Username) 
        ifExists = true; 

      if (ifExists == false) 
      { 
       User u = new User(d, user_Username); 
       u.Login = LoginName; 
       u.Create(); 
       u.AddToRole("db_owner"); 
      } 
     } 
     srv.Refresh(); 
    } 
関連する問題