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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 283154
Url: https://administrator.de/contentid/283154
Printed on: April 26, 2024 at 03:04 o'clock
1 Comment
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
oder DB-weise mit
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
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