SQL-Statement zur Ausführung an allen Tabellen

Frage:
Gibt es eine Möglichkeit mit einer einzigen SQL-Anweisung Rechte an allen Tabellen zu vergeben?

Lösung:
Mittels der undokumentierte Gespeicherten Prozedur master.dbo.sp_msforeachtable kann eine SQL-Anweisung an jeder Tabelle der aktiven Datenbank ausgeführt werden.
Beispiel:
exec sp_msforeachtable ‚Grant Select, Update, Insert, Delete On ? To public‘

/* übernommen aus der Original sqlfaq.de */

Benutzerkonto sa

Frage:
Mit der Installation des SQL-Servers wird automatisch die Anmeldung sa erzeugt. Wozu ist diese Anmeldung gut?

Lösung:
sa steht für system administrator und ist – wie der Name schon sagt – das Administratorkonto vom SQL Server.
Dieses Konto verfügt über alle Rechte am SQL Server.

sa sollte nur für die Installation und die Wiederherstellung eines SQL Servers oder in Notfällen genutzt werden. Für tägliche Administrationsaufgaben und insbesondere zur Datenbank-Entwicklung sollten eigene Benutzerkonton – mit den Anforderungen entsprechend ausgestatteten Berechtigungen – genutzt werden.

SQL Server 7.0 geht sehr fahrlässig mit dem sa-Konto um, denn bei der Installation wird das Konto ohne Kennwort angelegt. SQL Server 2000 erinnert zwar an ein Kennwort, zwingend ist es aber nicht. Ein system administrator ohne Kennwort ist wie eine Haustür ohne Schloss und lädt ungebetene Gäste geradezu ein. Der Virus Slammer ist ein solch ungebetener Gast.

/* übernommen aus der Original sqlfaq.de */

Quellcode verschlüsseln

Frage:
Der Quellcode von Sichten und Gespeicherten Prozeduren ist über den Enterprise Manager für jeden Benutzer mit ausreichend Berechtigungen lesbar. Zumindest der Administrator kann den Quellcode lesen. Wie kann der Quellcode verschlüsselt werden?

Lösung:
Sichten und Gespeicherte Prozedurens können beim CREATE mit dem Zusatz with encryption verschlüsselt werden.
Aber Vorsicht! Der Quellcode ist danach für jeden verschlüsselt – auch für den Besitzer dieser Objekte.
Die Verschlüsselung der Daten kann nicht mehr rückgängig gemacht werden.

/* übernommen aus der Original sqlfaq.de */

Berechtigung auf Spaltenebene einer Tabelle in SQL Server 7.0

Frage:
Der SQL-Server 6.5 unterstützt die Vergabe von Berechtigungen auf Spaltenebene im Enterprise Manager.
Gibt es diese Funktion in der Version 7.0 nicht mehr?

Lösung:
Es ist auch im SQL-Server 7.0 weiterhin möglich, Berechtigungen auf Spaltenebene zu vergeben.
Allerdings bietet der Enterprise Manager hierfür keine Verwaltungsdialoge. Die Berechtigungen auf Spaltenebene können nur mit T-SQL-Befehlen verwaltet werden.

/* übernommen aus der Original sqlfaq.de */