Манай бааз дээр A, B, C гэдэг хэрэглэгч байгаа. A хэрэглэгч дээр B хэрэглэгчийн бүх object-г зөвхөн select хийх эрх олгох гэсэн юм. A хэрэглэгч нь гэхдээ C хэрэглэгчийн ямар ч object руу хандах эрхгүй байна. Яаж хийвэл хамгийн амар байдлаар хийж болох вэ? SELECT ANY
гэсэн system privilege нэмчихээр C хэрэглэгчийн object руу хандах болчихоод байх юм.
B User deeree eniig ajilluulchih.
Declare
sql_str varchar2(1000);
CURSOR c1 IS
select * from user_tables;
BEGIN
FOR rec IN c1 LOOP
sql_str := ’ Grant select on ‘||rec.table_name ||’ to A_USER’;
execute immediate sql_str;
END LOOP;
end;
Ингэхээр зөвхөн table-уудыг л харах эрх олгочихоод байгаа юм. Би бол ганц table ч гэлтгүй тухайн схем дээр байгаа бүх обьект руу хандах эрх өгчихмөөр байгаа юм. /View, procedure, package, synonym гэх мэт…/
Сайхан нэг нэгээр grant хийсэн нь дээр байлгүй дээ
1 Like
Байнга хийгдэх үйлдэл бол эхлээд нэг role үүсгээд уг role-д харгалзах эрхүүдийг оноо. (Угаасаа жаахан ажиллагаатай. Эхэлж хийхдээ загвар бэлдээд ав. object type тус бүр дээр ажиллах байх)
Дараа нь уг role оо хэрэглэгч нарт өг.