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

Czy możemy odmówić usunięcia z określonych tabel?

Absolutnie!

DENY DELETE ON (YourTableNameHere) TO YourUserNameHere

Zobacz wspaniałe i obszerne dokumenty MSDN Books Online po więcej szczegółów!

Jeśli chcesz odmówić DELETE pozwolenie na wszystkie tabele w bazie danych, możesz użyć:

DENY DELETE TO YourUserNameHere

Lub jeśli ustrukturyzowałeś bazę danych w taki sposób, że tabele są pogrupowane w schematy , możesz również odmówić użytkownikowi dostępu do określonego schematu.

Jeśli nie pogrupowałeś 90 tabel w osobny schemat (lub dwa, trzy schematy), to nie ma łatwego, magicznego sposobu jednorazowo zastosować pozwolenie na 90 stołów. To albo wszystkie stoły , określony schemat lub określony obiekt bazy danych (np. tabela) na DENY oświadczenie.

Aktualizacja: zawsze możesz użyć widoków katalogu systemowego, aby wygenerować te DENY oświadczenia dla Ciebie, a następnie użyj tych, których potrzebujesz:

SELECT 
    'DENY DELETE ON ' + t.NAME + ' TO (youruser)'
FROM sys.tables t

Spowoduje to jako wynik (np. w SQL Server Management Studio) listę instrukcji odrzucających DELETE pozwolenie od użytkownika. Skopiuj te wiersze do edytora tekstu i usuń wiersze, których nie potrzebujesz - i masz długą listę DENY oświadczenia!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa ANSI_NULLS w TSQL?

  2. Jak mogę używać jednej puli połączeń mssql na kilku trasach w aplikacji internetowej Express 4?

  3. Driver.getConnection zawiesza się przy użyciu sterownika SQLServer i Javy 1.6.0_29

  4. Czy można ustawić domyślny schemat z ciągu połączenia?

  5. Czy istnieje sposób na utrwalenie zmiennej podczas przejścia?