为新登录映射数据库
本文关键字:映射 数据库 登录 新登录 | 更新日期: 2023-09-27 18:12:13
我需要在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管理工作室)将被检查....
如何在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();
}