sql >> Database >  >> RDS >> Sqlserver

Sql Server-verificatieaccount maken?

Er zijn slechts twee modi waarvan ik weet dat u ze kunt gebruiken:Windows- of SQL Server-verificatie. Dit betekent dat u beperkt bent tot slechts twee keuzes:u gebruikt een Windows-account of u maakt een SQL Server-login die u kunt gebruiken om te verifiëren.

BEWERKEN:

Om programmatisch een sql-serveraanmelding te maken, kunt u Sql Server Management-objecten gebruiken. Ik merk dat je niet hebt aangegeven of je dit vanuit een Windows (desktop) of webapplicatie wilt doen. Om Sql Server Management te gebruiken om een ​​login aan te maken (of enige vorm van "beheer"), zou de code met hogere privileges moeten worden uitgevoerd, bijvoorbeeld een lokaal of domeinaccount met voldoende privileges om de SQL-serverinstantie te beheren.

U moet verwijzingen toevoegen naar (u zou versie 9.0 van de assemblages kunnen gebruiken):

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

Daarmee is de volgende code voldoende om een ​​SQL-login aan te maken en de gebruiker ook toe te voegen aan uw doeldatabase

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

U moet toevoegen:

using Microsoft.SqlServer.Management.Smo;

U kunt try{} catch{}-blokken en loodgieterscode toevoegen om het robuuster te maken, u zou het gracieus herstellen in geval van een storing




  1. Een invoerparameter controleren als deze niet Null is en deze gebruiken waar in SQL Server

  2. Oracle user_indexes vertaling naar MySQL

  3. Mysql-optimalisatie op basis van explain

  4. Verwijder dubbele resultaten in een selectiequery die de CLOB-kolom bevat