Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

nije mi do kraja jasan REVOKE

[es] :: MS SQL :: nije mi do kraja jasan REVOKE

[ Pregleda: 1924 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

johnnyc

Član broj: 175590
Poruke: 202
*.dynamic.sbb.co.yu.



Profil

icon nije mi do kraja jasan REVOKE13.03.2008. u 06:50 - pre 196 meseci
pozdrav,

ako mozete da mi objasnite sledece: sa REVOKE uklanjam ranije zadatu permisiju nad objektom?


to prakticno znaci, da ako sam imao definisan GRANT, sa REVOKE cu da povucem taj grant, i imacu DENY?

dok ako sam imao definisan DENY, sa REVOKE cu... sta? da imam GRANT?



sa REVOKE samo povlacim ranije definisanu permisiju, i treba da definisem potpuno novu?

ili mi REVOKE dodje kao da sam definisao DENY na necem sto je ranije bilo definisano sa GRANT?


nigde nisam mogao da nadjem "crno-na-belo" objasnjenje oko ovoga... hvala unapred!

 
Odgovor na temu

Koce
DBA
Serbia, Belgrade

Član broj: 59217
Poruke: 144
*.vektor.net.



+1 Profil

icon Re: nije mi do kraja jasan REVOKE13.03.2008. u 08:03 - pre 196 meseci
ne, pogresno razmisljas. ako si imao grant (ili deny, svejedno) i uradis revoke, posle toga neces imati nista nad tim objektom! Povukao si samo ovlascenje, nisi dodao suprotno. Posmatraj to kao -1, 0 i 1. Sa revoke to "resetujes" na 0, bez obzira da li si imao grant ili deny (1 ili -1), ok?

P.S. Naravno, sve se odnosi na to da nisi i preko neke druge grupe dodijelio ili oduzeo prava (npr imas rolu sa nekim pravima i korisnik je clan te role i plus si njemu posebno uradio grant ili deny), ako uradis revoke, korisnik ce onda imati ono sto mu pripada kao clanu te grupe.....




 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
...vl-edge-dnevnik.neobee.net.



+171 Profil

icon Re: nije mi do kraja jasan REVOKE13.03.2008. u 08:40 - pre 196 meseci
Vidim neko me pretekao ali evo namestio sam mali primer pa se nadam da ce biti jasno



Code:

CREATE TABLE LookAtMe(ID INT PRIMARY KEY, carName NVARCHAR(100))
GO
INSERT INTO LookAtMe VALUES (1, 'BMW')
INSERT INTO LookAtMe VALUES (2, 'Mercedes')
INSERT INTO LookAtMe VALUES (3, 'Opel')
INSERT INTO LookAtMe VALUES (4, 'Ford')
INSERT INTO LookAtMe VALUES (5, 'Fiat')
INSERT INTO LookAtMe VALUES (6, 'Bugati')
GO

CREATE ROLE [FirstRole] AUTHORIZATION [dbo]
GRANT SELECT ON OBJECT::dbo.LookAtMe TO [FirstRole]
GO

CREATE ROLE [SecondRole] AUTHORIZATION [dbo]
DENY SELECT ON OBJECT::dbo.LookAtMe TO [SecondRole]
GO

CREATE LOGIN [MyLogin] WITH PASSWORD=N'none', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

CREATE USER [MyUser] FOR LOGIN [MyLogin] WITH DEFAULT_SCHEMA=[dbo]
GO

EXEC sp_addrolemember 'FirstRole', 'MyUser'
GO


Napomena : pre nego sto pokrenes ovaj script, moras imati dozvoljenu SQL autentikaciju i pokrenuti ovo kako sysadmin u managment studio i nemoj zatvarati konekciju.

E sad bi bilo valjda red da dam neko objasnjenje. Ovako, GRANT ti dodeljuje odredjena prava nekom objektu dok ih DENY zabranjuje. DENY uvek ima veci prioritet, sto znaci da ako je nesto stavljeno na DENY, bez obzira sto neki "database principal" ima negde dozvoljen(GRANT) pristup , DENY odnosi prevagu. U ovoj skripti sto sam ti dao kreirace se jedna tabela i popunice se sa nekim podacima, zatim ce se kreirati login i user koji ce ici preko tog login-a, kojem ce se na kraju dodeliti rolovi FirstRole i SecondRole.

Kada pokrenes ovu gore skriptu konektuj se ponovo na server ali sa MyLogin-om i sa sifrom : none

Klinki na New Query i pokreni ovo, i nemoj zatvarati query window:
Code:

SELECT * FROM LookAtMe


zatim se vrati na proslu konekciju (tamo gde si pokrenuo onaj gornji skript) i pokreni ovo
Code:

EXEC sp_addrolemember 'SecondRole', 'MyUser'



Posle ovog vrati se na prosli upit i pokreni ga. Sada bi trebalo da ti je zabranjen pristup. Ako uradis sledecu stvar:

Code:

EXEC sp_droprolemember 'SecondRole', 'MyUser'


i ponovo pokrenes upit - imaces pristup.

Eto, igraj se malo sa ovim i nadam se da ce ti biti jasno.

 
Odgovor na temu

[es] :: MS SQL :: nije mi do kraja jasan REVOKE

[ Pregleda: 1924 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.