Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Creare un account di autenticazione del server SQL?

Ci sono solo due modalità che so che puoi usare:Windows o Autenticazione SQL Server. Ciò significa che sei limitato a due sole scelte:puoi utilizzare un account Windows o creare un account di accesso di SQL Server che puoi utilizzare per autenticarti.

MODIFICA:

Per creare a livello di codice un accesso al server SQL, è possibile utilizzare gli oggetti Gestione server SQL. Ho notato che non hai detto se vuoi farlo da un'applicazione Windows (desktop) o Web. Per utilizzare Sql Server Management per creare un accesso (o eseguire qualsiasi tipo di "gestione"), il codice dovrebbe essere eseguito con privilegi più elevati, ad esempio un account locale o di dominio con privilegi sufficienti per amministrare l'istanza del server SQL.

Dovrai aggiungere riferimenti a (potresti usare la versione 9.0 degli assembly):

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

Con ciò, il codice seguente è sufficiente per creare un login SQL e anche aggiungere l'utente al database di destinazione

        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");
        }

Dovrai aggiungere:

using Microsoft.SqlServer.Management.Smo;

Puoi aggiungere blocchi try{} catch{} e codice idraulico per renderlo più robusto e ripristinarlo senza problemi in caso di errore