sql >> Database >  >> RDS >> Sqlserver

Kunnen we verwijderen van specifieke tabellen weigeren?

Absoluut!

DENY DELETE ON (YourTableNameHere) TO YourUserNameHere

Zie de prachtige en uitgebreide MSDN Books Online-documenten voor meer details!

Als u de DELETE . wilt weigeren toestemming voor alle tabellen in een database, kunt u gebruiken:

DENY DELETE TO YourUserNameHere

Of als u uw database zo heeft gestructureerd dat de tabellen zijn gegroepeerd in schema's , dan kunt u een gebruiker ook weigeren van een specifiek schema.

Als je je 90 tabellen niet hebt gegroepeerd in een apart schema (of twee, drie schema's), dan is er geen gemakkelijke, magische manier om een ​​machtiging toe te passen op 90 tabellen tegelijk. Het zijn ofwel alle tafels , een specifiek schema of een specifiek database-object (zoals een tabel) per DENY verklaring.

Bijwerken: u kunt altijd de systeemcatalogusweergaven gebruiken om die DENY . te genereren verklaringen voor u, en gebruik vervolgens de verklaringen die u nodig heeft:

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

Dit zal als uitvoer (bijvoorbeeld in SQL Server Management Studio) een lijst met instructies produceren om de DELETE te weigeren toestemming van uw gebruiker. Kopieer die rijen naar een teksteditor en verwijder de rijen die je niet nodig hebt - en daar heb je je lange lijst met DENY verklaringen!




  1. Werken met decimale velden in SSIS

  2. SQLCMD Kan het inlogproces niet voltooien vanwege vertraging bij het openen van de serververbinding

  3. Yii Framework:de tabel voor actieve recordklasse kan niet worden gevonden in de database

  4. Controleer of de kolom bestaat als er meerdere tabellen met dezelfde naam in verschillende schema's zijn (PSQL 8.2)