sql >> Database teknologi >  >> RDS >> Sqlserver

Kan vi nægte sletning fra specifikke tabeller?

Absolut!

DENY DELETE ON (YourTableNameHere) TO YourUserNameHere

Se de vidunderlige og omfattende MSDN Books Online-dokumenter for flere detaljer!

Hvis du ønsker at afvise DELETE tilladelse til alle tabeller i en database, kan du bruge:

DENY DELETE TO YourUserNameHere

Eller hvis du har struktureret din database på en sådan måde, at tabellerne er grupperet i skemataer , så kan du også nægte en bruger fra et bestemt skema.

Hvis du ikke har grupperet dine 90 tabeller i et separat skema (eller to, tre skemaer), så er der ingen nem, magisk måde at anvende en tilladelse til 90 borde på én gang. Det er enten alle tabeller , et specifikt skema eller et specifikt databaseobjekt (som en tabel) pr. DENY erklæring.

Opdatering: du kan altid bruge systemkatalogvisningerne til at generere disse DENY erklæringer til dig, og brug derefter dem, du har brug for:

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

Dette vil producere som output (f.eks. i SQL Server Management Studio) en liste over sætninger for at afvise DELETE tilladelse fra din bruger. Kopier disse rækker ind i en teksteditor, og fjern de rækker, du ikke har brug for - og der har du din lange liste med DENY udsagn!




  1. SQL - underforespørgsler til topresultat uden rækkefølge efter

  2. InnoDB række niveau låse ydeevne - hvor mange rækker?

  3. Lagring af MySQL GUID/UUID'er

  4. Kan jeg bruge Postgres-funktionerne til at finde punkter inde i et roterende rektangel af fast størrelse?