homermg
Goto Top

SQL Server 2008 Berechtigungen

Hey Leute,

ich spiele gerade mit einem Sql Server 2008 rum.
Irgendwie blicke ich nicht so ganz bei den Berechtigungen durch.
Habe einen SQL Server 2008 installiert eine Test DB angelegt.
Auf einem Client eine ODBC Verbindung zum Server eingerichtet mit dem Adminaccount und kann nun mit dem Adminaccount auch per Access auf die Datenbank zugreifen.

Nun habe ich eine Ad Gruppe angelegt und dort einen AD Testuser hinzugefügt.
Auf dem SQL Server im Server Mangment Studio Rechtklick auf die DB- Properties-Permissions
Dort die Gruppe hinzugefügt und Permission "Connect" aktiviert.

Anschließend mit dem Testuser versucht per ODBC zu verbinden leider ohne Erfolg: Login failed.
Hmm ist da was falsch in meinem Vorgehen?
Könnt ihr mir da etwas auf die Sprünge helfen?
Vielen Dank

Content-ID: 240170

Url: https://administrator.de/contentid/240170

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

emeriks
emeriks 05.06.2014 um 18:42:00 Uhr
Goto Top
Haste den User (Nicht-Admin) nach dem Hinzufügen zur Gruppe auch nochmal neu angemeldet am Windows? Oder übergibst Du die Daten explizit in der DSN?
E.
homermg
homermg 05.06.2014 um 20:39:11 Uhr
Goto Top
Hi
Ich übergebe die explizit in der dsn.
colinardo
colinardo 05.06.2014 aktualisiert um 22:04:12 Uhr
Goto Top
homermg
homermg 06.06.2014 um 09:41:47 Uhr
Goto Top
Hi Jungs,

hmm ich glaube das Problem ist wo anders.
Also wenn ich die ODBC Verbindung auf einem Client Rechner einrichten und "Mit Windows NT-Authentifizierung anhand des Benutzernamens im Netzwerk" wähle dann kann ich die Verbindung aufbauen. So wie ich das verstanden habe nimmt ODBC dann den aktuell am Client angemeldeten Benutzer.
Wenn ich aber " Mit SQL Server-Authentifizierung anhand des vom Benutzer eingegebenen Benutzernamens und Kennworts" nehme und den gleichen Benutzer dann weiter unten eintippe der am Cleint gerade angemeldet ist, komme ich nicht rein.
EIne Idee warum?
Vielen Dank
emeriks
emeriks 06.06.2014 um 09:44:22 Uhr
Goto Top
Na "SQL Server-Authentifizierung" arbeitet mit SQL-Server-internen Benutzerkonten (z.B. der SA). Klar, dass Du da mit einem Windows-Konto nicht rein kommst.

E.
colinardo
colinardo 06.06.2014 aktualisiert um 09:51:04 Uhr
Goto Top
wenn du SQL Authentifizierung benutzt musst du wie oben eine Anmeldeaccount anlegen, und in diesem Anmeldeeintrag die Windows-Auth einschalten. Ansonsten fehlt dir eventuell noch die Option IntegratedSecurity=true in deinem Connection-String.

Grüße Uwe
emeriks
emeriks 06.06.2014 um 10:03:08 Uhr
Goto Top
@colinardo
Bist Du sicher? Wenn man ein Windows-Konto miit einem SQl-User verknüpft, dann hat der SQL-User kein eigenes Passwort, deswegen eine "SQL-Authentifizierung" damit nicht funktionieren sollte. Es geht damit nur die integrierte.

E.
colinardo
colinardo 06.06.2014 aktualisiert um 10:21:53 Uhr
Goto Top
Zitat von @emeriks:

@colinardo
Bist Du sicher? Wenn man ein Windows-Konto miit einem SQl-User verknüpft, dann hat der SQL-User kein eigenes Passwort,
deswegen eine "SQL-Authentifizierung" damit nicht funktionieren sollte. Es geht damit nur die integrierte.
Das war nur ein Verständnisproblem, sicher hat der User kein separates Kennwort da er ja über die windows auth authentifiziert wird. Ich meinte das er mal nur die obige Option setzen sollte wenn der gerade angemeldete User-Account für die Verbindung benutzt werden soll. Wenn er das mal lesen würde wäre das alles kein Problem ...

Das Anlegen einer SQL-Server-Anmeldung wie oben verlinkt ist ja Pflicht.

0306a01ffdf13a6e5bd15e27b0883253

ConnectionString = “Server=SERVERXYZ;Database=DEINEDB;Integrated Security=True”
homermg
homermg 06.06.2014 um 10:20:07 Uhr
Goto Top
ok Jungs, habe es nun verstanden und konnte alles so testen und nachbauen wie ich es wollte!
Dankee!
Könnt ihr mir vielleicht noch was zu folgenden Punkten sagen wenn ich einen Loginuser einrichte:
Serverroles= was beeinflussen die, ist es nur für die lokale Anmeldung am Server?
und
User Mappings= sind es die Berechtigungen für User die extern nur auf DB's zugreifen?

EIn Beispiel ist vielleicht die beste ERklärung face-smile
Wenn ich z.B. einem AD user die Berechtugung geben will per ODBC / Access eine Verbindung zur eine DB zu aufzubauen und innerhalb der DB soll er Adminrechte haben. Er darf sich aber nicht an dem SQL Server anmelden. Was muss ich da einstellen?

Danke!
colinardo
colinardo 06.06.2014 aktualisiert um 10:36:05 Uhr
Goto Top
Zitat von @homermg:
Serverroles= was beeinflussen die, ist es nur für die lokale Anmeldung am Server?
http://msdn.microsoft.com/de-de/library/ms188659(SQL.105).aspx
User Mappings= sind es die Berechtigungen für User die extern nur auf DB's zugreifen?

bee33cf5146ce1beb03765fc06d2f982
homermg
homermg 06.06.2014 um 11:56:19 Uhr
Goto Top
super Danke,

habe das soweit verstanden.

1. Jetzt sehe ich gerade unter ODBC wenn ich das Dropdownmenü aufrufe das dort noch 3 weiter DB'S zu sehen sind master msdb und tempdb.
Das sind ja SystemDB's nur warum erscheinen die? Ich habe dem Testuser doch nur das Recht für die TestDB gegeben.

2.Wenn ich die DB auf dem SQL Server mit Access verknüpfe werden mir neben meiner Testtabelle noch ganz viele Tabellen angezeigt: wie z.B. INFORMATION_SCHEMA.CHECK.... usw. Ich denke das hängt mit den System DB's zusammen oder?

3. Wenn ich das die Testtabelle im Access verknüpft habe und irgendwas in eine der Felder eintragen will sagt mir Access "Diese Datenschutzgruppe kann nicht aktualisiert werden" Kann ich nicht über Access in die DB einfach was eintragen?

Danke!
colinardo
colinardo 06.06.2014 um 12:26:55 Uhr
Goto Top
Jetzt sehe ich gerade unter ODBC wenn ich das Dropdownmenü aufrufe das dort noch 3 weiter DB'S zu sehen sind master msdb und tempdb.
Den Grund findest du hier:
Wenn ich das die Testtabelle im Access verknüpft habe und irgendwas in eine der Felder eintragen will sagt mir Access "Diese Datenschutzgruppe kann nicht aktualisiert werden"
Dann hast du noch etwas falsch konfiguriert, denn normalerweise geht dies problemlos.
homermg
homermg 06.06.2014 um 15:06:29 Uhr
Goto Top
Hi,

habe rausgefunden warum ich nicht speichern konnte, meine Testtabelle hatte keine Indexspalte mit Primirykey face-smile

zu den Systemtabellen:
ok, das heißt ich könnte die Ausblenden jedoch braucht der ODBC bzw dir Rolle und wenn Public nicht gestatte diese zu editieren werde ich dann wharscheinlich mit anderen DB's auf dem SQL Server problemme kriegen. Ist es so richtig?

Ich müsste demnächst eine User bei uns eine leer SQL DB zur Verfügung stellen, Jetzt habe ich natürlich etwas angst das er dann mit sienem Account an den Systemtabellen rumfuscht face-sad hmmmm
colinardo
Lösung colinardo 06.06.2014, aktualisiert am 13.06.2014 um 08:37:32 Uhr
Goto Top
Die Systemtabellen sieht er zwar aber ändern kann er daran absolut nichts! Für manche Tabellen bzw. Ansichten benötigt ODBC Leserechte sonst kann es hier zu Problemen beim Zugriff kommen.

Grüße Uwe
homermg
homermg 13.06.2014 um 08:37:24 Uhr
Goto Top
super Leute
vielen Dank für die Hilfe!
Habe soweit alles verstanden