в продукте нашей компании, мы присоединяем базу данных к SQL Server, и нам нужно добавить учетные данные для некоторых учетных записей в каталог.Добавьте логин и пользователя на SQL Server без использования SMO
В настоящее время мы используем SMO, чтобы сделать это, но это дает нам проблемы (x86 против 64, SQL Server 2005 по сравнению 2008 и т.д.)
Есть ли это в любом случае добавления логин (к серверу) и пользователя (в каталог) с использованием SQL?
Это текущий код, чтобы добавить логин:
connection = new ServerConnection(new SqlConnection(this.connectionString));
Server server = new Server(connection);
//Drop existing login (if exist)
Login login = server.Logins[AccountName];
if (login != null)
login.Drop();
//Create new login
login = new Login(server, AccountName);
login.LoginType = LoginType.WindowsUser;
login.Create();
DatabaseMapping mapping = new DatabaseMapping(login.Name, connection.DatabaseName, login.Name);
и добавить пользователя:
connection = new ServerConnection(new SqlConnection(this.connectionString));
Server server = new Server(connection);
Microsoft.SqlServer.Management.Smo.Database database = server.Databases[CatalogName];
User user = server.Databases[CatalogName].Users[LoginName];
if (user != null)
user.Drop();
user = new User(database, LoginName);
user.Login = LoginName;
user.Create();
user.AddToRole("db_owner");
Я хочу, чтобы выполнять эти операции с помощью SQL. Есть идеи?
FYI, если вы можете что-то сделать в Smo, но не в SQL, вы всегда можете использовать Profiler для отслеживания SQL, отправленного на сервер при запуске вашего кода Smo. Обычно этого достаточно, чтобы указать вам в правильном направлении. – Pondlife
Ничего себе, спасибо. Никогда не знал об этом ... +1 за отличный совет – Nissim