tharen
Goto Top

SQL neuer User: Login failed for User . Msg 18456, Level 14, State 1, Line 1

Hallo,

ich habe auf unserem SQL Standard 2008 R2 engl. einen neuen User angelegt. Sonst haben wir nur mit "sa" gearbeitet.
der neue User soll aber Zugriff habe auf eine VIEW einer bestimmten Datenbank.

Ich habe also die Datenbank ITEMS erstellt, und dort ist eine View, die bestimmte Inhalte aus anderen Datenbanken enthält (Artikelnummer, Bezeichnung, Einheit)

Dann habe ich einen neuen User angelgt im Bereich "Security --> Logins --> new Login "itemlist"
SQL-Auth gewählt, Kennwort eingetragen
Default Database ITEMS gewählt

Rolle: public

User Mapping: Datenbank ITEMS gewält.. es wurde automatisch Schema dbo eingetragen

Dann habe ich in den Eigenschaften der VIEW
den User "itemlist" gesucht und hinzugefügt bei Users of Roles
bei Explicit "Select" gewählt (Grant & With Grant)

--> OK

wenn ich mich auf dem Server mit Mgmt-Studio als ItemList anmelde kann ich die VIEW sehen... aber bei "Select TOP1000 rows"

kommt:
Msg 18456, Level 14, State 1, Line 1
Login failed for user 'Itemlist'.

Kann mir jemand helfen ?

Vielen Dank für Eure Wissenswerte.

Tharen

Content-Key: 283154

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

Printed on: April 23, 2024 at 19:04 o'clock

Member: MadMax
Solution MadMax Sep 17, 2015 at 15:25:53 (UTC)
Goto Top
Hallo Tharen,

das liegt an den fehlenden Rechten des Benutzers itemlist auf die Daten in der Quell-DB. Damit das funktioniert mußt Du erst die datenbankübergreifende Besitzverkettung einschalten und auch darauf achten, daß die Besitzer der Tabellen in der Quell-DB und der Besitzer der Sicht in der DB ITEMS dieselben sind. Aber wenn Ihr bisher nur den sa genutzt habt, dann sollte das ja gegeben sein.

Einschalten kannst Du das für die ganze Instanz mit
sp_configure 'cross db ownership chaining', 1;  
reconfigure;

oder DB-weise mit
alter database ITEMS set db_chaining on;

Wenn Du es für die DB einschaltest, muß es auf allen beteiligten DBen eingeschaltet sein, also für ITEMS und die DB, die die Daten enthält.

Schau mal in der SQL Server Hilfe unter dem Stichwort "Besitzketten". Da findest Du auch einen Hinweis zur Sicherheit bei dem Thema.

Gruß, Mad Max