dans le produit de notre société, nous attachons une base de données à SQL Server et nous devons ajouter des informations d'identification à certains comptes au catalogue.Ajoutez le nom de connexion et l'utilisateur à SQL Server sans utiliser SMO
Actuellement nous utilisons SMO pour le faire, mais cela nous donne des problèmes (x86 vs x64, SQL Server 2005 vs 2008, etc.)
Est-ce qu'il y a de toute façon d'ajouter un login (au serveur) et utilisateur (au catalogue) en utilisant SQL?
Ceci est le code actuel pour ajouter connexion:
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);
et d'ajouter l'utilisateur:
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");
Je veux effectuer ces opérations en utilisant SQL. Des idées?
FYI, si vous pouvez faire quelque chose dans Smo mais pas SQL, vous pouvez toujours utiliser Profiler pour tracer le SQL envoyé au serveur pendant que vous exécutez votre code Smo. C'est généralement suffisant pour vous orienter dans la bonne direction. – Pondlife
Wow, merci. Je ne savais pas à ce sujet ... +1 pour les bons conseils – Nissim