Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_03_Oracle (Grant Revoke) (1) / Theory_Grant_Revoke_Dict (3_Oracle)

.pdf
Скачиваний:
6
Добавлен:
11.02.2015
Размер:
584.8 Кб
Скачать

Зверніть увагу, що не для всіх стовпців визначені користувальницькі умовчання. Для таких стовпців замовчуваним значенням автоматично вважається NULL.

Приклад 3

Виведення залежностей для подань і синонімів.

Коли ви створюєте подання або синонім, він опирається на нижчележачий базовий об'єкт. Подання словника даних із суфіксом _DEPENDENCIES можна використовувати для одержання інформації про залежності для подання, а подання словника даних із суфіксом _SYNONYMS – для показу базового об'єкта синоніма. Наприклад, наступний запит видає базові об'єкти для синонімів, створених користувачем JWARD:

SELECT table_owner, table_name FROM all_synonyms

WHERE owner = 'JWARD';

Результати цього запиту могли б виглядати в такий спосіб:

TABLE_OWNER TABLE_NAME

----------------------------------------------------

SCOTT

DEPT

SCOTT

EMP

Можна скористатися поданням dictionary для перегляду всіх подань і системних таблиць як показано нижче:

SQL> desc dictionary

 

Имя

Null? Тип

------------------------------------------------ -------- -------------------------

TABLE_NAME

VARCHAR2(30)

COMMENTS

VARCHAR2(4000)

SQL> column TABLE_NAME FORMAT A15

SQL> COLUMN COMMENTS FORMAT A40

SQL> SELECT * FROM DICTIONARY;

TABLE_NAME COMMENTS

--------------- ----------------------------------------

ALL_ALL_TABLES Description of all object and relational

tables accessible to the user

ALL_ARGUMENTS Arguments in object accessible to the user

--------------------------------------------------------------------------------------------

-

……………………………………………………………………………......

.

V$VERSION V$WAITSTAT V$_LOCK

Synonym for V_$VERSION Synonym for V_$WAITSTAT Synonym for V_$_LOCK

732 строк выбрано.

Привілеї, які необхідні для виконання тих чи інших операцій у базі даних.

Перевірити стан привілеїв і ролей для користувача, всіх користувачів і зрівняти їх із привілеями адміністратора на створені об'єкти:

1. Привілеї, необхідні для створення таблиць

Щоб створити нову таблицю у вашій схемі, ви повинні мати системний привілей CREATE TABLE. Щоб створити таблицю в схемі іншого користувача, ви повинні мати системний привілей CREATE ANY TABLE. Крім того, власник таблиці повинен мати квоту для табличного простору, в якому втримується таблиця, або системний привілей

UNLIMITED TABLESPACE.

2. Привілеї, необхідні для зміни таблиць

Щоб змінити таблицю, або вона повинна міститися у вашій схемі, або ви повинні мати об'єктний привілей ALTER для цієї таблиці, або системний привілей ALTER ANY TABLE.

3. Привілеї, необхідні для видалення таблиць

Щоб видалити таблицю, або вона повинна міститися у вашій схемі, або ви повинні мати системний привілей DROP ANY TABLE.

4. Привілеї, необхідні для створення подань

Щоб створити подання, ви повинні задовольняти наступним вимогам:

1) Щоб створити подання у вашій схемі, ви повинні мати привілей CREATE VIEW; щоб створити подання у схемі іншого користувача, ви

повинні мати системний привілей CREATE ANY VIEW. Обидва ці привілеї можуть бути отримані вами явно або через роль.

2)ВЛАСНИК подання (тобто власник схеми, в якій створюється подання) повинен мати ЯВНО призначені привілеї для доступу до об'єктів, на які посилається визначення подання; ці привілеї НЕ МОЖУТЬ бути отримані через роль. Крім того, працездатність подання залежить від привілеїв власника цього подання.

Наприклад, якщо власник подання має лише привілей INSERT для таблиці SCOTT.EMP, то подання можна використовувати лише для вставки нових рядків у таблицю EMP, але не для запитів за цією таблицею й не для відновлення або видалення рядків у ній.

3)Якщо власник подання має намір надати доступ до цього подання іншим користувачам, він повинен володіти об'єктними привілеями для базових об'єктів подання з опцією GRANT OPTION, або системними привілеями з опцією ADMIN OPTION. У протилежному випадку власник не може дати доступ до подання іншим користувачам.

4)Привілеї, необхідні для заміни подання

Щоб замінити подання, ви повинні мати всі привілеї, необхідні для видалення й створення подання.

5) Привілеї, необхідні для використання подань

Щоб видавати для подання запит або речення INSERT, UPDATE або DELETE, ви повинні мати для цього подання об'єктний привілей

SELECT, INSERT, UPDATE або DELETE, відповідно, отриманий або явно, або через роль.

6) Привілеї, необхідні для видалення подання Ви можете видаляти будь-який подання, що міститься у вашій

схемі. Щоб видалити подання у схемі іншого користувача, ви повинні мати системний привілей DROP ANY VIEW.

7) Привілеї, необхідні для створення послідовностей Щоб створити послідовність у своїй схемі, ви повинні мати

системний привілей CREATE SEQUENCE; щоб створити послідовність у схемі іншого користувача, ви повинні мати системний привілей

CREATE ANY SEQUENCE.

8) Привілеї, необхідні для зміни послідовностей Щоб змінити послідовність, ви повинні мати її у своїй схемі, або

мати системний привілей ALTER ANY SEQUENCE.

9) Привілеї, необхідні для використання послідовностей

Щоб використовувати послідовність, ви повинні або володіти нею у своїй схемі або мати об'єктний привілей SELECT для послідовності, що належить іншому користувачеві.

10) Привілеї, необхідні для видалення послідовностей Ви можете видаляти будь-яку послідовність, що міститься у

вашій схемі. Щоб видалити послідовність у схемі іншого користувача, ви повинні мати системний привілей DROP ANY SEQUENCE.

11) Привілеї, необхідні для створення синонімів Щоб створити особистий синонім у своїй схемі, ви повинні мати

привілей CREATE SYNONYM; щоб створити особистий синонім у схемі іншого користувача, ви повинні мати системний привілей CREATE ANY SYNONYM. Щоб створити загальний синонім, ви повинні мати системний привілей CREATE PUBLIC SYNONYM.

12) Привілеї, необхідні для використання синоніма Ви можете з успіхом використовувати будь-який особистий

синонім, що міститься у вашій схемі, а також будь-який загальний синонім, при умові, що ви маєте необхідні привілеї для доступу до об'єкта, що лежить нижче, отримані або явно, або через діючу роль, або через групу PUBLIC. Ви можете також звертатися до будь-якого особистого синоніма, що міститься в чужій схемі, якщо вам були призначені необхідні об'єктні привілеї для цього особистого синоніма. Ви можете використовувати особистий синонім іншого користувача лише згідно з тим об'єктним привілеєм, який був вами отриманий. Наприклад, якщо у вас є привілей SELECT для синоніма JWARD.EMP, то ви можете видавати запити по синоніму JWARD.EMP, але не можете, скажімо, вставляти рядки через цей синонім.

13) Привілеї, необхідні для видалення синонімів Ви можете видалити будь-який особистий синонім, що міститься у

вашій схемі. Щоб видалити особистий синонім у схемі іншого користувача, ви повинні мати системний привілей DROP ANY SYNONYM. Щоб видалити загальний синонім, ви повинні мати системний привілей DROP PUBLIC SYNONYM.

14) Привілеї, необхідні для створення індексів Щоб створити новий індекс, ви повинні володіти відповідною

таблицею або мати для неї об'єктний привілей INDEX. Схема, в якій створюється індекс, повинна також мати квоту для табличного простору, в якому буде міститься індекс або системний привілей

UNLIMITED TABLESPACE. Щоб створити індекс у схемі іншого користувача, ви повинні мати системний привілей CREATE ANY

INDEX.

15) Привілеї, необхідні для видалення індексу Щоб видалити індекс, ви повинні або мати його у своїй схемі або

мати системний привілей DROP ANY INDEX.

16)Привілеї, необхідні для створення кластера, кластеризованої таблиці й індексу кластера

Щоб створити кластер у своїй схемі, ви повинні мати системний привілей CREATE CLUSTER, а також квоту для табличного простору, в якому буде втримуватися кластер, або системний привілей UNLIMITED TABLESPACE. Щоб створити кластер у схемі іншого користувача, ви повинні мати системний привілей CREATE ANY CLUSTER, а власник повинен мати квоту для табличного простору, в якому буде міститься кластер або системний привілей UNLIMITED TABLESPACE.

17)Привілеї, необхідні для створення кластера, кластеризованої таблиці й індексу кластера

Щоб створити таблицю в кластері, ви повинні мати системний привілей CREATE TABLE або CREATE ANY TABLE. Вам не потрібно мати квоту табличного простору або системний привілей UNLIMITED TABLESPACE для створення кластеризованої таблиці.

Щоб створити індекс кластера, ваша схема повинна містити цей кластер, і ви повинні мати наступні привілеї:

системний привілей CREATE ANY INDEX, або, якщо ви володієте кластером, привілей CREATE INDEX.

квоту для табличного простору, в якому буде міститься індекс кластера, або системний привілей UNLIMITED TABLESPACE.

18)Привілеї, необхідні для видалення кластера

Щоб видалити кластер, ви повинні мати його у своїй схемі, або володіти системним привілеєм DROP ANY CLUSTER.

Ви не зобов'язані мати додаткових привілеїв для видалення кластера, що містить таблиці, навіть якщо кластеризовані таблиці не належать власникові цього кластера.

19) Привілеї, необхідні для перейменування об'єкта Щоб перейменувати об'єкт, ви повинні бути його власником

Соседние файлы в папке Lab_03_Oracle (Grant Revoke) (1)