Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utworzyć konto uwierzytelniania serwera SQL?

Wiem, że można używać tylko dwóch trybów:Uwierzytelnianie Windows lub SQL Server. Oznacza to, że jesteś ograniczony tylko do dwóch opcji:używasz konta Windows lub tworzysz login SQL Server, którego możesz użyć do uwierzytelnienia.

EDYCJA:

Aby programowo utworzyć login do serwera sql, można użyć obiektów zarządzania serwerem SQL. Zauważyłem, że nie powiedziałeś, czy chcesz to zrobić z aplikacji Windows (komputer stacjonarny), czy z aplikacji internetowej. Aby użyć zarządzania serwerem Sql do utworzenia loginu (lub wykonania jakiegokolwiek "zarządzania"), kod musiałby działać z wyższymi uprawnieniami - powiedzmy konto lokalne lub domenowe z uprawnieniami wystarczającymi do administrowania instancją serwera SQL.

Będziesz musiał dodać odniesienia do (możesz użyć wersji 9.0 zestawów):

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum

Dzięki temu poniższy kod wystarczy, aby utworzyć login SQL, a także dodać użytkownika do docelowej bazy danych

        var serverName = "."; // Your SQL Server Instance name
        var databaseName = "Test"; // Your database name
        var loginName = "testuserY"; // Your login name (should not exist - or you should add code to check if the login exists)


        Server svr = new Server(serverName);
        var db = svr.Databases[databaseName];
        if (db != null)
        {
            // You probably want to create a login and add as a user to your database
            Login login = new Login(svr, loginName);
            login.DefaultDatabase = "master"; // Logins typically have master as default database
            login.LoginType = LoginType.SqlLogin;
            login.Create("foobar", LoginCreateOptions.None); // Enter a suitable password
            login.Enable();

            User user = new User(db, loginName);
            user.UserType = UserType.SqlLogin;
            user.Login = login.Name;
            user.Create();
            // add a role
            user.AddToRole("db_owner");
        }

Musisz dodać:

using Microsoft.SqlServer.Management.Smo;

Możesz dodać bloki try{} catch{} i kod instalacyjny, aby uczynić go bardziej niezawodnym, abyś mógł z wdziękiem odzyskać w przypadku awarii




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zamiast NULL, jak wyświetlić wynik `0` za pomocą instrukcji SELECT sql?

  2. Wzorzec projektowy dla pól niestandardowych w relacyjnej bazie danych

  3. Jaki jest najlepszy sposób na przetworzenie i zaimportowanie dużego pliku csv (500k rekordów) do serwera SQL przy użyciu Vbscript?

  4. Iteruj przez wiersze w SQL Server 2008

  5. Jak znaleźć ostatni dzień miesiąca w SQL Server