Jeg er veldig grønn når det gjelder administrasjon av databasetillatelser i SQL Sever.

La oss holde et eksempel enkelt.

Si kontoen «admin» er eieren av skjemaene A, B og C.

Det er en annen konto «minion» som du vil ha full rettighet (oppdater / slett / sett inn / velg / endre) på et hvilket som helst objekt (tabell / visning) opprettet under skjemaene A, B og C.

Er dette mulig? Eller må du utføre en tilskuddserklæring hver gang du legger til en tabell / visning under disse skjemaene? (virker litt dumt for meg).

Svar

Du kan GRANT skjematillatelser som er effektive for alt eksisterende og alt som vil eksistere i det skjemaet.

Tillat skjema Tillatelser

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

Videre til det, hvis du vil nekte tillatelser for en bestemt objekt i det skjemaet, kan du gjøre det.

Nekter objekttillatelser

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

Kommentarer

  • Bruk også hakeparenteser hvis skjemaet eller brukernavnet har spesialtegn. f.eks. .... SCHEMA :: [schema] TO [company-name/joshua.duxbury]
  • Fungerer ' ikke i Azure, noen ide om hvorfor? (kommandoene fungerer, men SSMS kommer opp og sier " du er ikke Db-eier .. bla bla bla. Du kan kanskje ikke lagre tabellen " og sikkert, du kan ' t (gjorde en tildele ALL til databasen (viser tillatelser ' Database ', ' < db navn > ', TheUserId, ' Opprett tabell ', og state_desc av ' GRANT ') Er det noe annet magi som trengs? Eller er Azure bare brukbart av Dbo?

Svar

For å forenkle litt lenger, kan du bruke roller til å utføre jobben du leter etter.

Når du har tildelt tillatelser til rollen, kan du bare legge til brukere i rollen. På denne måten trenger du ikke administrere tillatelser for individuelle brukere. Brukerne arver tillatelser som er gitt til rolle.

Nedenfor er et eksempel for å 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 

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *