2011-10-25 2 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 관리 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(); 
    } 
관련 문제