Rechtevergabe MSSQL?
Hallo zusammen,
ich möchte einem User auf eine MSSQL DB Leserechte geben, so das eine externe nicht auf dem Server laufende Application auf die SQL Daten zugreifen kann. Leider kenne ich mich mit MSSQL nicht aus. Funktioniert das so ähnlich wie bei mySQL?
Sowas in der Art:
GRANT SELECT ON db1.* TO username IDENTIFIED BY "password"
oder muss ich das unter Windows "zusammenclicken"?
ich möchte einem User auf eine MSSQL DB Leserechte geben, so das eine externe nicht auf dem Server laufende Application auf die SQL Daten zugreifen kann. Leider kenne ich mich mit MSSQL nicht aus. Funktioniert das so ähnlich wie bei mySQL?
Sowas in der Art:
GRANT SELECT ON db1.* TO username IDENTIFIED BY "password"
oder muss ich das unter Windows "zusammenclicken"?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 37780
Url: https://administrator.de/contentid/37780
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
3 Kommentare
Neuester Kommentar
hi,
welche version von MS SQL benutzt du?
du musst lediglich nur den Enterprise-Manager starten, den Server und die Datenbank auswählen.
unter ROLES kannst du versch profile für user o gruppen festlegen.
zb db_owner ist der datenbankbesitzer und darf alles. nur lese-rechte besitzt db_datareader.
probier einfach ein bisschen, was du genau brauchst.
du kannst auch unter Users benutzer und gruppen hinzufügen. diesen kannst du dann spezielle rechte vergeben (unter properties), dh auf tabellen, views oder prozeduren
welche version von MS SQL benutzt du?
du musst lediglich nur den Enterprise-Manager starten, den Server und die Datenbank auswählen.
unter ROLES kannst du versch profile für user o gruppen festlegen.
zb db_owner ist der datenbankbesitzer und darf alles. nur lese-rechte besitzt db_datareader.
probier einfach ein bisschen, was du genau brauchst.
du kannst auch unter Users benutzer und gruppen hinzufügen. diesen kannst du dann spezielle rechte vergeben (unter properties), dh auf tabellen, views oder prozeduren
Moin Bastian_W,
die Rechtevergabe ist genauso wie Du oben vermutet hast bei allen SQL-Dantenbanken (so gut wie) identisch.
Entsprechend wäre auch bei MSSQL x.yy theoretisch alees aus dieser Syntax möglich:
[Quelle: http://dev.mysql.com/doc/refman/4.1/en/grant.html Grant Syntax]
In der Theorie.
In der Praxis wird aber jeder DB-Admin die Rechtevergabe
1) auf Tabellenebene festlegen, nicht auf Datenbankebene
2) es reduzieren auf die Rechte SELECT/INSERT/UPDATE/DELETE und natürlich dann auch auf Floskeln wie "IDENTIFIED by "whatever" verzichten... ist ja nicht pflegbar.
3) je nach Datenbank zusätzlich noch festlegen, dass dieser User überhaupt das Recht zum CONNECT mit der Datenbank hat.
Auch wenn, wie nomax richtigerweise geschrieben hat, natürlich ein Zusammenklicken der Rechte über irgendeine GUI möglich ist, würde ich (ebenso wie bei DDL-Skripten zur DB-Anpassung) auch bei der GRANTerei immer den Weg über Statements gehen.
Zur Dokumentierbarkeit und Reprozierbarkeit.
Gruß
Biber
die Rechtevergabe ist genauso wie Du oben vermutet hast bei allen SQL-Dantenbanken (so gut wie) identisch.
Entsprechend wäre auch bei MSSQL x.yy theoretisch alees aus dieser Syntax möglich:
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON {tbl_name | * | *.* | db_name.*}
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
[REQUIRE
NONE |
[{SSL| X509}]
[CIPHER 'cipher' [AND]]
[ISSUER 'issuer' [AND]]
[SUBJECT 'subject']]
[WITH with_option [with_option] ...]
with_option =
GRANT OPTION
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
In der Theorie.
In der Praxis wird aber jeder DB-Admin die Rechtevergabe
1) auf Tabellenebene festlegen, nicht auf Datenbankebene
2) es reduzieren auf die Rechte SELECT/INSERT/UPDATE/DELETE und natürlich dann auch auf Floskeln wie "IDENTIFIED by "whatever" verzichten... ist ja nicht pflegbar.
3) je nach Datenbank zusätzlich noch festlegen, dass dieser User überhaupt das Recht zum CONNECT mit der Datenbank hat.
Auch wenn, wie nomax richtigerweise geschrieben hat, natürlich ein Zusammenklicken der Rechte über irgendeine GUI möglich ist, würde ich (ebenso wie bei DDL-Skripten zur DB-Anpassung) auch bei der GRANTerei immer den Weg über Statements gehen.
Zur Dokumentierbarkeit und Reprozierbarkeit.
Gruß
Biber