Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyświetlić wszystkie dotacje dla bazy danych SQL?

Podane rozwiązanie nie obejmuje sytuacji, w których uprawnienie jest udzielane w odniesieniu do schematu lub samej bazy danych, które przyznają uprawnienia również w odniesieniu do tabel. To da ci również takie sytuacje. Możesz użyć klauzuli WHERE przeciwko permission_name, aby ograniczyć się tylko do DELETE.

SELECT 
    class_desc 
  , CASE WHEN class = 0 THEN DB_NAME()
         WHEN class = 1 THEN OBJECT_NAME(major_id)
         WHEN class = 3 THEN SCHEMA_NAME(major_id) END [Securable]
  , USER_NAME(grantee_principal_id) [User]
  , permission_name
  , state_desc
FROM sys.database_permissions

Ponadto db_datawriter musiałby zostać sprawdzony pod kątem członkostwa, ponieważ daje niejawne prawa INSERT, UPDATE i DELETE, co oznacza, że ​​nie zobaczysz go w DMV z uprawnieniami lub ich pochodnych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tworzenie nazw tabel będących zastrzeżonymi słowami/słowami kluczowymi w MS SQL Server

  2. Jak znaleźć duplikaty w wielu kolumnach?

  3. Korzystanie z liczby wierszy z tabeli tymczasowej w pętli while SQL Server 2008

  4. Geoserwer — połącz się z SQL Server 2008 Express i pobierz dane

  5. Nie znaleziono bliskich odpowiedników w CONTAINSTABLE