Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为新登录映射数据库_C#_.net_Sql Server 2005_Smo - Fatal编程技术网

C# 为新登录映射数据库

C# 为新登录映射数据库,c#,.net,sql-server-2005,smo,C#,.net,Sql Server 2005,Smo,我需要使用SMO在SQLServer2005中创建一个新的登录名 我使用以下代码创建新登录: ServerConnection connection = new Microsoft.SqlServer.Management.Common.ServerConnection(Server, Server_UserName, Server_Password); Microsoft.SqlServer.Management.Smo.Server sqlServer = new Microsoft.Sql

我需要使用SMO在SQLServer2005中创建一个新的登录名

我使用以下代码创建新登录:

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");     
现在我需要检查用户映射选项卡(在SQLServerManagementStudio中)中的所有数据库


如何在SMO中执行此操作?

将用户映射到所有数据库:

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

将用户映射到所有数据库:

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