Jeg er meget grøn når det kommer til databaseadministrationsverdenen i SQL Sever.

Lad os holde et eksempel simpelt.

Sig konto “admin” er ejeren af skemaerne A, B og C.

Der er en anden konto “minion”, som du vil have fulde rettigheder (opdater / slet / indsæt / vælg / ændr) på ethvert objekt (tabel / visning) oprettet under skemaer A, B og C.

Er dette muligt? Eller skal du udføre en tilskudserklæring hver gang du tilføjer en tabel / visning under disse skemaer? (virker lidt fjollet for mig).

Svar

Du kan GRANT skematilladelser, der er effektive for alt eksisterende og alt, hvad der vil eksistere i det skema.

Tillad skema tilladelser

GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: <schema> TO <user>; 

Yderligere til det, hvis du vil nægte tilladelser til en bestemt objekt inden for dette skema, kan du gøre.

Nægte objekttilladelser

DENY INSERT ON OBJECT::<schema>.<object> TO <user>; 

Kommentarer

  • Brug også firkantede parenteser, hvis skemaet eller brugernavnet har specialtegn. fx .... SCHEMA :: [schema] TO [company-name/joshua.duxbury]
  • Fungerer ' ikke i Azure, nogen idé hvorfor? (kommandoerne fungerer, men SSMS kommer op og siger " du er ikke Db-ejeren .. bla bla bla. Du kan muligvis ikke gemme tabellen " og helt sikkert kan du ' t (tildelte databasen ALL (viser tilladelser ' Database ', ' < db navn > ', TheUserId, ' Opret tabel ' og state_desc for ' GRANT ') Er der noget andet magi, der er nødvendigt? Eller kan Azure kun bruges af Dbo?

Svar

For at forenkle lidt længere kan du bruge roller til at udføre det job, du leder efter.

Når du har tildelt tilladelser til rollen, kan du bare tilføje brugere til rollen. På denne måde behøver du ikke administrere tilladelser for individuelle brugere. Brugerne arver tilladelser til rollen.

Nedenfor er et eksempel for at komme i gang:

 -- Create the database role CREATE ROLE TableSelector AUTHORIZATION [dbo] GO ---- Grant access rights to a specific schema in the database GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON SCHEMA::dbo TO TableSelector GO -- Add an existing user to the new role created EXEC sp_addrolemember "TableSelector", "MyDBUser" GO -- Revoke access rights on a schema from a role DENY ALTER -- you can customize here ... ON SCHEMA::dbo TO TableSelector 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *