sql >> Databasteknik >  >> RDS >> Sqlserver

Skapa SQL Server Authentication Account?

Det finns bara två lägen som jag vet att du kan använda:Windows eller SQL Server Authentication. Det betyder att du är begränsad till endast två val:antingen använder du ett Windows-konto eller så skapar du en SQL Server-inloggning som du kan använda för att autentisera.

EDIT:

För att programmatiskt skapa en sql-serverinloggning kan du använda SQL Server Management-objekt. Jag märker att du inte sa om du vill göra detta från en Windows (skrivbord) eller webbapplikation. För att använda SQL Server Management för att skapa en inloggning (eller göra någon form av "hantering"), skulle koden behöva köras med högre privilegier - säg lokalt eller domänkonto med tillräckliga privilegier för att administrera SQL-serverinstansen.

Du måste lägga till referenser till (du kan använda version 9.0 av sammansättningarna):

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

Med det räcker följande kod för att skapa en SQL-inloggning och även lägga till användaren i din måldatabas

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

Du måste lägga till:

using Microsoft.SqlServer.Management.Smo;

Du kan lägga till försök{} catch{}-block och VVS-kod för att göra den mer robust och du skulle kunna återställa graciöst i händelse av misslyckande




  1. Django och PostgreSQL - värde för långt för att typtecken varierar(512)

  2. Implementering av MySQL Hashing-funktion

  3. Skaffa språket som för närvarande används i SQL Server

  4. MySQL Insert-frågan fungerar inte med WHERE-satsen