Olen erittäin vihreä, kun kyse on tietokannan käyttöoikeuksien hallinnasta SQL Severissä.

Pidetään esimerkki yksinkertainen.

Sano, että tili ”admin” on kaavojen A, B ja C omistaja.

Siellä on toinen tili ”minion”, jolla haluat saada kaikki oikeudet (päivitä / poista / insert / select / alter) mihin tahansa objektiin (taulukko / näkymä), joka on luotu kaavioilla A, B ja C.

Onko tämä mahdollista? Vai onko sinun täytettävä apuraha-lausunto joka kerta, kun lisäät taulukon / näkymän näiden skeemojen alle? (tuntuu minulle vähän typerältä).

Vastaa

Voit GRANT skeeman käyttöoikeudet, jotka ovat tehokkaita kaikelle olemassa olevalle ja kaikelle, mikä on olemassa siinä skeemassa.

Myönnä skeeman käyttöoikeudet

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

Tämän lisäksi, jos haluat kieltää tietyn käyttöoikeudet Tämän skeeman sisällä olevan objektin voit tehdä.

Objektin käyttöoikeuksien estäminen

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

Kommentit

  • Käytä myös hakasulkeita, jos mallissa tai käyttäjänimessä on erikoismerkkejä. esim. .... SCHEMA :: [schema] TO [company-name/joshua.duxbury]
  • Eikö ' toimi Azuressa, onko mitään syytä miksi? (komennot toimivat, mutta SSMS tulee esiin ja sanoo " et ole Db: n omistaja. blah blah blah. Et ehkä pysty tallentamaan taulukkoa " ja tosiaan, voit ' t (antoi Grant ALL tietokannalle (näyttää käyttöoikeudet ' tietokanta ', ' < db nimi > ', TheUserId, ' Luo taulukko ' ja GRANT ') Tarvitaanko jotain muuta taikuutta? Vai onko Azure vain Dbo: n käytettävissä?

Vastaus

Voit yksinkertaistaa hieman edelleen käyttämällä rooleja etsimäsi työn suorittamiseen.

Kun olet määrittänyt rooleihin, voit vain lisätä käyttäjiä rooliin. Näin sinun ei tarvitse hallita yksittäisten käyttäjien oikeuksia. Käyttäjät perivät roolille myönnetyt käyttöoikeudet.

Alla on esimerkki aloituksesta:

 -- 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 

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *