Wie sollte ein Datenbank-Benutzer angelegt werden (inkl. Schema) - MSSQL-Server?

Wie sollte ein Datenbank-Benutzer angelegt werden (inkl. Schema) - MSSQL-Server?

Voraussetzung für diese Schritte: Es gibt bereits eine Datenbank für die Verwendung mit enaio, z. Bsp. enaioprod oder enaiotest oder ein anderer beliebiger Name. 

Wichtig: Unser Datenbankbenutzer sollte gleich heißen wie das Schema und der SQL-Login-Name. Wir benötigen lediglich DB-Owner-Rechte. Nicht mehr. Bitte auch keine anderen Rechte vergeben, sonst ist das Schema automatisch dbo (egal, was zugewiesen ist).
Komplette Anlage-Anleitung (Datenbank und Benutzer, inkl. Schema) siehe auch KB-026/10. 

Wichtig: Das Sonderzeichen “{“ ist bei Datenbankpasswort nicht erlaubt.

 

nachfolgend beschrieben:

 

Download:

Skript für Anlage Datenbank enaiotest mit Unicode und Benutzer sysadm: 
SQLQuery_createdatabase+user+schema.zip
Bitte beachten: Einsatz auf eigene Gefahr. 

 


Schritt-für-Schritt-Anleitung

per MSSQL-Management-Studio

Beispiel für: Datenbank enaiotest soll Benutzer sysadm bekommen (Schema = Benutzer)

  1. MSSQL-Benutzer anlegen

    1. MSSQL-Management-Studio starten und mit einem administrativen Account anmelden, z. Bsp. sa oder ein anderer Datenbankbenutzer. 

    2. Bei MSSQL-Sicherheit einen MSSQL-Login-Namen erstellen per rechte Maustaste bei Logins:

    3. Nun den Namen wählen, das Passwort und die Authentifizierung auf "SQL Server Authentifizierung" umstellen. Empfehlenswert sind Passwort-Policy abstellen und nicht das Standardpasswort aus dem Handbuch verwenden. 
      Die Sprache sollte Englisch sein. Beispiel: 

  2. Datenbank-Benutzer und Schema anlegen

    1. Nach dem Speichern mit "OK" zur Datenbank wechseln und dort "Sicherheit" öffnen.

    2. Zuerst das Schema anlegen. Dazu rechte Maustaste auf Schema und "Neues Schema" wählen. Dann den Namen vergeben (mehr nicht):

    3. Mit “OK” speichern und zu Benutzer bzw. Login wechseln. Hier einen neuen Benutzer anlegen und das Schema sowie den MSSQL-Login-Namen zuweisen. 

    4. Auf den Eintrag "Owned Schema" wechseln und "db_owner" anhaken. Keine anderen Rechte!

       

      Zuletzt auf Membership gehen und "db_owner" anhaken. Keine anderen Rechte! 

       

  3. Testen, ob es korrekt ist

    1. Nach dem Speichern mit "OK" einen Test ausführen. Dazu im Management-Studio eine neue Verbindung aufbauen per SQL-Authentifizierung. 

       

      Schlägt dies fehl, bitte die MSSQL-Err-Logs prüfen und den Fehlercode. Ist beim MSSQL-Server auch eingestellt, dass man sich per SQL-Authentifizierung anmelden darf? Eingige MSSQL-Server-Versionen lassen das Login nur zu, wenn die default-Datenbank eine ist, auf die der Benutzer Rechte hat. Also zurück zu Punkt 3 und von "master" umstellen auf "enaiotest".

      Erfolgsfall:

       

    2. Nun einen Test ausführen. Dazu einen neue Query erstellen und  mit der Datenbank verbinden (entweder DropDown oder per Commando "use enaiotest;"). 

      use enaiotest; create table test (nnr int, nname char (50)); 

       

      Danach die Tabellen prüfen. Heißt die test-Tabelle sysadm.test, ist alles ok. 

 

per SQL-Befehle

Beispiel für: Datenbank enaiotest soll Benutzer sysadm bekommen (Schema = Benutzer). Sollen andere Bezeichner und Passwörter verwendet werden, die orange markierten Daten ersetzen.

  1. An der Datenbank anmelden mit einem administrativen Account, z. Bsp. sa oder ein anderer Datenbankbenutzer. Das kann per ODBC erfolgen oder per MSSQL Management Studio oder einem ODBC-Tool (ob per 32bit oder 64bit ODBC-Quelle ist frei wählbar. Es muss nur beim MSSQL-Server freigeschaltet sein). 

  2. SQL-Statements oder Download der SQL-Query siehe oben.
    für SQL-Benutzer anlegen:

    use [master];  create login [sysadm] with password=N'freund', default_language=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF; 


    für Datenbank-Benutzer anlegen:
    - dazu zur Datenbank wechseln und zuerst das Schema anlegen:

    use [enaiotest];  create schema [sysadm]; 


    - DB-Benutzer anlegen:

    create user [sysadm] for login [sysadm] with default_schema=[sysadm];


    - Rechte vergeben:

    EXEC sp_addrolemember N'db_owner', N'sysadm';
  3. Testen, ob es korrekt ist. Dazu Login beim MSSQL-Server z. Bsp. per MSSQL-Management-Studio oder einem geeigneten ODBC-Tool.

    1. Dazu im Management-Studio eine neue Verbindung aufbauen per SQL-Authentifizierung. 

       

      Schlägt dies fehl, bitte die MSSQL-Err-Logs prüfen und den Fehlercode. Ist beim MSSQL-Server auch eingestellt, dass man sich per SQL-Authentifizierung anmelden darf? Eingige MSSQL-Server-Versionen lassen das Login nur zu, wenn die default-Datenbank eine ist, auf die der Benutzer Rechte hat. Also zurück zu Punkt 3 und von "master" umstellen auf "enaiotest".

      Erfolgsfall:

       

    2. Nun einen Test ausführen. Dazu einen neue Query erstellen und  mit der Datenbank verbinden (entweder DropDown oder per Commando "use enaiotest;"). 

      use enaiotest; create table test (nnr int, nname char (50)); 

       

      Danach die Tabellen prüfen. Heißt die test-Tabelle sysadm.test, ist alles ok. 

 

 



Bitte beachten: Dies gilt nur für MSSQL-Server. Bei Oracle sieht es anders aus. 
Für Oracle:
Wie sollte ein Datenbank-Benutzer angelegt werden (inkl. Schema / tablespace) - Oracle?

 

Verwandte Artikel