Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала
- Название:Oracle SQL. 100 шагов от новичка до профессионала
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:11
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.
Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Множество объектов (таблиц, представлений…) заданного пользователя называется схемой пользователя.
То есть когда определенный пользователь создает какую-либо таблицу или другой объект базы данных, этот объект создается в схеме данного пользователя.
При обращении к объекту пользователя из другой учетной записи (когда мы соединяемся с базой данных под другим логином и паролем) необходимо перед наименованием объекта, к которому идет обращение (таблице, функции, представлению), добавлять имя пользователя — схему и через точку указывать сам объект. Такое обращение называется квалифицированным обращением.
Для обращения к объекту не из своей схемы пользователь, владелец объекта, должен предоставить соответствующие права на чтение данных соответствующего Имя_пользователя. имя_таблицы1.
Пример квалифицированного обращения:
SELECT * FROM hr.STAFF
SELECT * FROM user3.STAFF
DELETE user3.TABLE
Для создания пользователя применяется команда
CREATE USER USERNAME IDENTIFIED BY PASSWORS,
где USERNAME — имя пользователя;
PASswors — пароль пользователя.
Есть несколько дополнительных параметров: DEFAULT TABLESPACE USERS QUOTA 100M ON USERS — TEMPORARY TABLESPACE TEMP QUOTA 10M ON TEMP, которые позволяют задать дисковую квоту для заданного пользователя.
После создания пользователя необходимо выполнить команду
GRANT CREATE SESSION TO USERNAME;
а также
GRANT CREATE TABLE TO USERNAME
GRANT CREATE PROCEDURE TO USERNAME
GRANT CREATE TRIGGER TO USERNAME
GRANT CREATE VIEW TO USERNAME
GRANT CREATE SEQUENCE TO USERNAME
права для создания таблиц, процедур и функций.
Эта команда дает созданному пользователю права на создание сессии.
Ее выполнение необходимо для того, чтобы разрешить присоединение пользователя к базе данных.
Приведем пример.
Зайдем в программу SQLDEVELOPER, откроем сессию SYS с паролем, который вы ввели при установке.
Выполнить команды:
CREATE USER USER1 IDENTIFIED BY PASS1;
Создание пользователя USER1 с паролем PASS1:
GRANT CREATE SESSION TO USER1;
GRANT CREATE TABLE TO USER1;
Даем право на создание сессии и создание таблиц созданному пользователю:
CREATE USER USER2 IDENTIFIED BY PASS2;
Создание пользователя USER1 с паролем PASS1:
GRANT CREATE SESSION TO USER2;
Даем право на создание сессии созданному пользователю.
Перезайдем под пользователем USER1, в выпадающем списке необходимо отметить DEFAULT.
CONNECTION NAME: USER1
USER NAME: USER1
PASSWORD: USER1
CREATE TABLE T1 AS SELECT SYSDATE SDT FROM DUAL;
Зайдем под учетной записью USER2.
CONNECTION NAME: USER2
USER NAME: USER2
PASSWORD: USER2
Выполним запрос:
SELECT * FROM USER1.t1
Ошибка ORA-00942: TABLE OR VIEW DOES NOT EXIST.
Перейдем во вкладку USER1.
GRANT SELECT, INSERT ON T1 TO USER2;
Добавим права на выбор и вставку SELECT, INSERT.
Соединимся снова с базой под пользователем USER2 и выполним запрос:
SELECT * FROM USER1.t1
— 01.01.2011Таким образом, мы получили данные из таблицы в другой схеме — USER1.t1.
Системные административные пользователи (SYS SYSTEM)
Есть специальные системные пользователи с максимальными правами на объекты.
Системный пользователь SYS владеет таблицами словаря данных, содержащими информацию обо всех остальных структурах базы данных.
Системному пользователю SYSTEM принадлежат представления, полученные на основе таблиц пользователя SYS. Все объекты базы данных создаются с учетными записями их владельцев.
Под учетными записями SYS, SYSTEM реализован максимальный набор прав: права создавать объекты, изменять права для объектов любого пользователя, назначать любому пользователю роли и привилегии.
Для входа под данными учетными записями используется специальный тип входа SYS AS SYSDBA, SYSTEM AS SYSDBA. При входе через интерфейс программы SQLDEVELOPER для входа под этими пользователя необходимо выбрать в выпадающем списке ROLE — SYSDBA.
Система прав и ролей
В ORACLE есть системные привилегии, объектные привилегии и роли.
• Системные привилегии — специальный тип привилегий для выполнения конкретного действия в базе данных либо действия с любым объектом схемы конкретного типа.
• Объектная привилегия назначается для конкретного объекта таблицы.
• Роль — это предопределенный набор прав и привилегий, назначается заданным пользователям.
Для назначения ролей и привилегий используется оператор GRANT.
Синтаксис:
GRANT тип операции или роль ON объект TO пользователь;
где тип операции — SELECT, INSERT, EXECUTE, UPDATE;
объект — параметр может быть пропущен;
пользователь — учетная запись системы.
Таблицы с информацией о ролях пользователей
Для того чтобы посмотреть информацию о правах, ролях и пользователях, существуют следующие системные таблицы.
DBA_USERS хранит информацию обо всех, кто имеет учетную запись в базе данных ORACLE. Вместе с именем и хешированным паролем пользователя хранится имя назначенного ему пользователя.
DBA_PROFILE для каждого профиля хранит информацию о ресурсах и их лимитах.
DBA_ROLES детализирует все роли, содержащиеся в базе данных.
DBA_ROLE_PRIVS — роли, которые были назначены конкретным пользователям и другим ролям.
DBA_SYS_PRIVS — системные привилегии, которые были выданы конкретным пользователям или ролям.
DBA_TAB_PRIVS — привилегии SELECT, INSERT и UPDATE, которые были выданы конкретным пользователям или ролям.
DBA_COL_PRIVS — привилегии SELECT, INSERT и UPDATE, которые были выданы конкретным пользователям или ролям.
ROLE_ROLE_PRIVS — роли, назначенные другим ролям.
ROLE_SYS_PRIVS — системные привилегии, выданные ролям.
ROLE_TAB_PRIVS — привилегии доступа к таблицам, выданные ролям.
ROLE_COL_PRIVS — привилегии доступа к столбцам таблиц, выданные ролям.
USER_ROLE_PRIVS — роли, назначенные текущему пользователю.
USER_SYS_PRIVS — системные привилегии, выданные текущему пользователю.
USER_TAB_PRIVS — привилегии доступа к таблицам, выданные текущему пользователю.
USER_COL_PRIVS — привилегии доступа к столбцам таблиц, выданные текущему пользователю.
Пример
SELECT * FROM USER_ROLE_PRIVS WHERE USERNAME =USER
Просмотр всех системных привилегий заданного пользователя user.
Объектные привилегии
Для каждого из объектов базы данных можно назначать привилегии, которые необходимы заданным пользователям.
Синтаксис
Предоставление объектных привилегий:
GRANT тип привилегий ON объект TO пользователь WITH GRANT OPTION;
Тип привилегий может быть на выборку, на вставку, на обновление данных, на запуск процедуры или функции SELECT, INSERT, UPDATE, EXCEUTE.
GRANT OPTION — возможность передавать данные права.
Примеры
Права на выбор данных из таблицы t2:
Читать дальшеИнтервал:
Закладка: