Сопоставление баз данных для нового входа - PullRequest
1 голос
/ 25 октября 2011

Мне нужно создать новый логин в SQL Server 2005, используя SMO.

Я создаю новый логин, используя этот код:

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 Ответ

1 голос
/ 12 декабря 2011

Отображение пользователя на все базы данных:

 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();
    }
...