2009-03-10 18 views
0

Ich habe mehrere neue Tabellen auf einer neuen Datenbank erstellt (Microsoft SQL Server 2005). Nun sind diese Tabellen für Clientbenutzer bereit, um mithilfe von System DSN ODBC-Objekt (mit SQL-Authentifizierung) über Access 2003 anzuzeigen. Ich habe eine Rolle und ein Schema in der Datenbank erstellt, und ein Login-Benutzer für meinen SQL-Server hat standardmäßig meine Datenbank und den Schemanamen.TSQL zum Anzeigen, Hinzufügen und Löschen von Berechtigungen

Das Problem ist, dass Clients nicht nur Tabellen sehen können, die ich erstellt habe, sondern auch Systemansichtsobjekte in der Datenbank. Ich bin mir nicht sicher, was ich tun soll, um einen SQL-Login-Benutzer, ein Schema und eine Rolle einzurichten, so dass nur meine Tabellen sichtbar sind. Nicht sicher, warum Systemansichtsobjekte standardmäßig für angemeldete Benutzer sichtbar sind.

Eine andere alternative Möglichkeit, Berechtigungen zu bereinigen, habe ich gerade. Ich habe einige Systemansichtsobjekte überprüft (eine sehr lange Liste). Sie alle haben eine Berechtigung mit dem Schema, das ich mit einem öffentlichen Schema erstellt habe. Gibt es eine Möglichkeit, mithilfe von T-SQL-Skript Berechtigungen anzuzeigen und zu löschen, die meinem Schema für diese Systemansichtsobjekte zugeordnet sind? Danach muss ich ähnliche Skripts verwenden, um den von mir erstellten Tabellen Berechtigungen für mein Schema hinzuzufügen.

Antwort

1

Nun, standardmäßig wird ein neuer Benutzer auch Mitglied der "öffentlichen" Server- und Datenbankrolle. Die Objekte im System. und INFORMATION_SCHEMA-Schemas sind für Mitglieder der öffentlichen Rolle sichtbar.

Sie können entweder Ihren eigenen Rollenzugriff für diese Schemas explizit verweigern oder Sie können die öffentliche Rolle von Ihrem Login-Benutzer entfernen.

Marc

Verwandte Themen