Skip to main content
Skip table of contents

3.5. Direkter Zugriff auf die Datenbank (Variante Azure Cloud)

Die direkte Arbeit auf der Datenbank ist nur für sehr erfahrene Anwender empfohlen. Sie erhalten haben damit sehr umfangreiche Möglichkeiten (eingeschlossen die Möglichkeit alles kaputt zu machen) - stellen Sie daher unbedingt im Vorfeld sicher das Sie per Backup / Restore die Datenbank nach unbeabsichtigten Änderungen zurücksetzen können. Alternativ können Sie Strukturen (Factories / Productlines / Products) zur Sicherheit vorab exportieren.

Sie erhalten für den Zugriff auf die Datenbank einen separaten Benutzer mit separatem Passwort pro Datenbank - er hat keinerlei Verbindung zu den Benutzerkonten, welche im Azure Portal verwendet werden.
Sofern Sie für mehrere Datenbanken User erhalten geben wir Ihnen in diesen den gleichen Usernamen / Passwörter - sie können und müssen diese aber pro Datenbank ändern.


1. Zielstellung

Durch den direkten Zugriff auf die Datenbank werden üblicherweise folgende Ziele verfolgt

  • Zugriff auf die Daten per SQL Server Managementstudio

  • Zugriff auf die Daten per PowerBI

  • Abruf der Daten mit Excel PowerQuery

  • Abruf der Daten aus allen sonstigen Tools, welche SQL Abfragen unterstützen

  • Konfiguration der Datenbank durch sehr erfahrene Anwender


2. Sicherheitsmaßnahmen

  • Notieren Sie vor Änderungen an der Datenbank den exakten Zeitpunkt Ihrer Arbeiten (Stunden / Minuten) - um die Datenbank später ggf. genau auf diesen Stand zurück zu setzen

  • erledigen Sie Anpassungen zeitnah vollständig - Backup / Restore ist in der Standardkonfiguration der saxess Cloud nur für die jeweils letzten 7 Tage möglich (erweiterte Zeiträume auf Anfrage)

  • Backup / Restore kann nicht durch Sie selbst durchgeführt werden, wenden Sie sich hierfür bitte an den Saxess Support und erteilen Sie den Auftrag für eine Service Aktion

  • Der Datenbankuser hat meist weit höhere Rechte als ein normaler Benutzer - speichern Sie dessen Login nicht in Abfragen etc., welche von Endanwendern verwendet werden.


3. Funktionsprinzip

  • in der Datenbank werden von uns für Sie einer oder mehrere Benutzer angelegt

  • die Benutzer erhalten einen abgestimmten Rechteumfang (Einzelne Tabellen / Views / Prozeduren ausführen, Alle Daten lesen, Vollzugriff)

  • je nach Rechteumfang können Sie nachfolgend die Datenbank teilweise oder komplett administrieren


4. Zugriff auf die Azure SQL Server Datenbank

Der Zugriff auf die Azure SQL Server Datenbank ist nur möglich, falls dies bei saxess beauftragt wurde. Im Rahmen dieser Beauftragung wird festgelegt

  • soll der Zugriff nur von bestimmten, oder von allen IP Adressen möglich sein

  • sollen im Rahmen des Zugriffs Rechtefilter aktiv sein, oder soll der unbeschränkte Datenzugriff möglich sein

Für den Zugriff müssen folgende Voraussetzungen erfüllt sein

  • die zugreifende Benutzer muss über Protokoll tcp mit Port 1433 ausgehende Verbindungen nutzen können

  • der User muss in SSMS / Excel etc. immer als SQL Datenbankbenutzer angegeben werden - nicht als Windows Benutzer


4.1. Verbindung mit der Datenbank im SQL Server Management Studio

Unter Optionen muss der Name der Datenbank angegeben werden


4.2. Verbindung aus Excel


5. FAQ

Kann ich als Datenbankanwender selbst mein Passwort ändern ?

  • Ja, durch ausführen eines SQL Befehls bei aktiver Verbindung - siehe Abschnitt für Administration

  • Nach der Passwortänderung per Befehl muss man sich von der Datenbank trennen und neu verbinden, da die Verbindung ja noch das alte Passwort nutzt

Ich habe meine Passwort im Azure Portal geändert - jetzt funktioniert der Login in die Datenbank nicht mehr

  • das Passwort des Datenbankusers hat sich nicht geändert - der User im Azure Portal hat mit dem Datenbankbenutzer nichts zu tun

Muss ich den Datenbankuser in der OCT Benutzerverwaltung als Benutzer anlegen und berechtigen ?

  • das kommt darauf an, wie der Datenbankbenutzer berechtigt wurde - ob er ohne oder mit OCT Berechtigungssystem zugreifen soll

  • wurde der Datenbankbenutzer als db_owner angelegt kann er alle Tabellen direkt lesen und auswerten

  • ein User mit db_owner Rechte muss auch in der OCT Benutzerverwaltung berechtigt werden, falls er Standardprozeduren ausführen will (da diese immer da OCT Rechtesystem nutzen)


6. Anleitung für die Administration

Der Prozess erfolgt initial durch Saxess und später ggf. durch einen Kundenadministrator.

  • in der Azure Datenbank muss ein contained User angelegt werden (separater User mit Passwort, keine Beziehung um AD B2C)

  • in der Azure Datenbank muss in der Datenbankfirewall die IP Adresse / Range des zugreifenden Benutzers freigeben sein

  • der User muss beim Login den Datebanknamen angeben, das wird oft vergessen

  • der User kann sein Passwort nur per Script ändern, nicht über die Oberfläche von SQL Server


6.1. Anlage der contained Users in der Datenbank

  • Rollen vorab entscheiden

SQL
/*
    Script um einen Contained User in der Datenbank zu erzeugen und diesem Rollen zuzuweisen.
    Gerd Tautenhahn für saxess-software
    06/2020
*/
 
 
-- KONFIGURATION ***************************************************
    DECLARE @UserName   NVARCHAR(255) = 'Holger_Holz';          -- Generisch für eine Firma z.B."Siemens_Reader" oder persönlich für einen Firmenmitarbeiter "Siemens_HansMeier" definieren
    DECLARE @Password	NVARCHAR(255) = 'ddre4564_d';			-- Passwort ausreichender Komplexität setzen          
   
    -- Rollen aktivieren

	DECLARE @SetRole_dbReader_Bool		INT = 0					-- falls der User auch direkt auf Tabellen / Views zugreifen sollen
	
	DECLARE @SetRole_dbOwner_Bool		INT = 0                 -- falls der User komplett als dbowner handeln können soll 
   
-- *****************************************************************

	IF @SetRole_dbOwner_Bool = 1 
		BEGIN
			SET @SetRole_dbReader_Bool = 0
			PRINT 'Die rolle db_reader wird ignoriert, da die Rolle db_owner diese bereits umfasst.'
		END
 
    DECLARE @SQL NVARCHAR(MAX) = '';  
   
-- CREATE User
    BEGIN
        SET @SQL = 'DROP USER IF EXISTS '+ @Username;
        EXEC (@SQL);
        SET @SQL = 'CREATE USER [' + @Username + '] WITH Password = ''' + @Password + '''';
        EXEC (@SQL);
        PRINT 'User ' + @Username + ' wurde erzeugt mit Passwort ' + @Password + ' .';
    END;

-- SET Roles
   IF @SetRole_dbReader_Bool = 1
   BEGIN
       EXEC sp_addrolemember 'dbreader', @Username;
       PRINT 'User ' + @Username + ' wurde wurde die Rolle db_reader zugewiesen - dieser User kann alle Daten lesen).'
    END;

-- SET Roles
   IF @SetRole_dbOwner_Bool = 1
   BEGIN
       EXEC sp_addrolemember 'db_owner', @Username;
       PRINT 'User ' + @Username + ' wurde wurde die Rolle db_owner zugewiesen - dieser User kann hat volle Rechte in der Datenbank.'
    END;

6.2. Änderung des Passworts eines contained User

  • das kann der User auch selbst, sobald er es gelernt hat Befehle in SSMS auszuführen

  • falls der User diesen User in mehreren Datenbanken besitzt, ändert sich das Passwort dadurch nur in dieser Datenbank - auch gleichnamige User sind nicht datenbankübergreifend gültig, sondern isoliert.

SQL
-- KONFIGURATION ***************************************************
	DECLARE @Username NVARCHAR(255) 	= 'Demouser';
	DECLARE @Password NVARCHAR(255) 	= 'xx';
-- KONFIGURATION ***************************************************

DECLARE @SQL NVARCHAR(MAX) = '';
 
SET @SQL = 'ALTER USER [' + @Username + '] WITH password= ''' + @Password + '''';
EXEC (@SQL);

6.3. Löschen eines Contained Users

SQL
DROP USER [DemoUser];

6.4. Konfiguration der Firewall

  • Klären ob bestimmte, oder alle IPs freigegeben werden sollen

  • Zur Kundendatenbank verbinden

SQL
-- Query the database for existing rules
	SELECT * FROM sys.database_firewall_rules;
 
-- Create one or more rules
	EXEC sp_set_database_firewall_rule N'Single IP' ,'123.123.123.123' ,'123.123.123.123'; -- einzelne IP
	-- EXEC sp_set_database_firewall_rule N'Range of IPs' ,'0.0.0.0' ,'255.255.255.255'; -- das wären alle, oder ein bestimmter Bereich
 
-- delete a rule
	EXEC sp_delete_database_firewall_rule N'Alle IPs';

6.5. Backup / Restore einer Datenbank

  • Kann nie in Eigenadministration erfolgen, wird immer per Service Auftrag von Saxess übernommen.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.