Citat:
trodon: Recimo da tabela u bazi ima 3 fielda - field1, field2, field3. Ulogujem se na server kao user kome su stavljene zabrane SELECT-a na fieldove field1 i field2. Kako da selektujem sve kolone iz tabele koje su dozvoljene za odredjenog user-a? Gledao sam mypermissions proceduru, ali ne znam kako da je koristim, i ne znam da li se ovaj problem uopshte reshava na taj nachin?
Unapred hvala na odgovorima...
Mozete da iskoristite sp_column_privileges proceduru da bi ste videli da li trenutni korisnik ima SELECT prava na odredjenoj koloni i da na osnovu toga napravite odgovarajuci SQL upit.
Na primer, mogli bi ste da izvrsite sledeci upit:
Code:
DECLARE @PrivilegedColumns
TABLE (
TABLE_QUALIFIER SYSNAME,
TABLE_OWNER SYSNAME,
TABLE_NAME SYSNAME,
COLUMN_NAME SYSNAME,
GRANTOR SYSNAME,
GRANTEE SYSNAME,
PRIVILEGE VARCHAR(32),
IS_GRANTABLE VARCHAR(3))
INSERT INTO @PrivilegedColumns
EXEC sp_column_privileges @table_name = 'MyTable',
@column_name = 'MyColumn'
SELECT * FROM @PrivilegedColumns
Odnosno da ga izmenite tako da se iz @PrivilegedColumns tabele proveri da li korisnik ima "SELECT" privilege na zadatoj koloni. Zatim dinamicki napravite SQL upit koji ce izvuci podatke samo iz zeljenih kolona i dinamicki izvrsite SQL upit.
Pozdrav,
Sasa