2011-01-03 4 views
2

Grüße alle, ich bin auf ein Problem gestoßen, das mich ratlos hat.Übergang von der Domänenauthentifizierung zur SQL Server-Authentifizierung

Ich habe eine Datenbank in SQL Server Express zusammengestellt, und ich habe ein seltsames Berechtigungsproblem. Die Datenbank befindet sich auf meinem Entwicklungscomputer mit einem Domänenbenutzer: DOMAIN \ albertp. Mein Entwicklungsdatenbankserver ist auf den Modus "SQL Server und Windows-Authentifizierung" eingestellt. Ich kann meine Datenbank problemlos bearbeiten und abfragen, wenn ich mich mit der Windows-Authentifizierung anmelde.

Wenn ich jedoch bei jedem Benutzer anmelden, der SQL Server-Authentifizierung (einschließlich sa) verwendet, erhalte ich diese Nachricht, wenn ich Abfragen für meine Datenbank ausführen.

SELECT * FROM [Testing].[dbo].[AuditingReport] 

ich:

Msg 18456, Level 14, State 1, Line 1 
Login failed for user 'auditor'. 

ich in den Server von SQL Server Management Studio als ‚Revisor‘ angemeldet bin und ich habe nichts im Fehlerprotokoll über die Loginfehler sehen.

Ich habe bereits laufen:

Use Testing; 
Grant All to auditor; 
Go 

Und ich immer noch die gleichen Fehler. Welche Berechtigungen muss ich festlegen, damit die Datenbank von anderen Personen außerhalb meiner persönlichen Domänenanmeldung verwendet werden kann? Oder schaue ich auf das falsche Problem?

Mein ultimatives Ziel ist es, die Datenbank von einer Reihe von PHP-Seiten zugänglich zu machen, entweder mit einem gemeinsamen Login (also "Auditor") oder einem Login für einzelne Benutzer.

Antwort

1

GRANT ALL führt nicht die Aktion aus, von der Sie glauben, dass sie es ist.

Ich empfehle zu Testzwecken, dass Sie Datenbankrollen in Betracht ziehen, um die Rechte Ihres Benutzers zu verwalten. Hier

ist eine Liste der verfügbaren Database-Level Roles

Sie können einen vorhandenen Benutzer eine Datenbankebene Rolle hinzufügen, indem Sie mit dem System gespeicherte Prozedur sp_AddRoleMember. Zum Beispiel liefert die folgende Leseberechtigung für Ihre Benutzer für alle Objekte innerhalb der vorgegebenen Datenbank .:

EXEC sp_addrolemember 'db_datareader','auditor' 

Im Idealfall werden Sie wollen wahrscheinlich die Definition eines eigenen Datenbankrollen, um prüfen zu Privilegien für Ihre Datenbankbenutzer zu verwalten .

+0

Danke! Das hat geholfen; Ich kann jetzt die Tabellen als "Auditor" ansehen. Gibt es eine separate Berechtigung, um Aufrufe zuzulassen? Ich kann die Ansicht "AuditingReport" immer noch nicht aufrufen. Ich erhalte denselben Fehler, wenn ich versuche, das wie zuvor auszuführen. –

+0

GRANT SELECT ON AuditingReport TO Auditor –

+0

Das funktioniert nicht, ich bekomme immer noch den 18456 Fehler, der oben angegeben ist. –

Verwandte Themen