我需要使用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中完成?
答案 0 :(得分: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();
}