Выбрать главу

[ СПИСОК_ЭЛЕМЕНТОВ_СХЕМЫ ]

Вот пример:

CREATE SCHEMA USER1 CREATE TABLE TBL1

(Столбец1 ТИП_ДАННЫХ [NOT NULL],

Столбец2 ТИП_ДАННЫХ [NOT NULL]...)

CREATE TABLE TBL2

(Столбец1 ТИП_ДАННЫХ [NOT NULL],

Столбец2 ТИП_ДАННЫХ [NOT NULL]...)

GRANT SELECT ON TBLl TO USER2

GRANT SELECT ON TBL2 TO USER2

[ Другие команды DDL ... ]

В реальности оператор CREATE SCHEMA может быть применен, например, следующим образом.

CREATE SCHEMA AUTHORIZATION USER1

CREATE TABLE EMP

(ID NUMBER NOT NULL,

NAME VARCHAR2(10) NOT NULL)

CREATE TABLE CUST

(ID NUMBER NOT NULL,

NAME VARCHAR2(10) NOT NULL)

GRANT SELECT ON TBLl TO USER2

GRANT SELECT ON TBL2 TO USER2

Схема создана.

Здесь к команде CREATE SCHEMA добавлено ключевое слово AUTHORIZATION. Пример взят из базы данных Oracle. Пример приводится для того, чтобы вы лишний раз убедились в том, что как и во многих обсуждавшихся выше случаях синтаксис команд часто зависит от конкретной реализации языка

Некоторые реализации SQL не поддерживают команду CREATE SCHEMA. В таком случае схема может создаваться автоматически при создании пользователем объектов базы данных Команда CREATE SCHEMA просто позволяет выполнить такую задачу за один шаг После создания пользователем объектов, этот пользователь может наделить других пользователей привилегиями, разрешающими доступ к созданным объектам

Удаление схем

Схема может быть удалена из базы данных с помощью оператора DROP SCHEMA. Этот оператор имеет две опции. Применение первой из них, опции RESTRICT, заставит сервер базы данных при удалении схемы выдать сообщение об ошибке, если эта схема содержит какие-нибудь объекты. Чтобы такое сообщение не появлялось, следует применить другую опцию, а именно опцию CASCADE. Помните о том, что при удалении схемы из базы данных удаляются все связанные с этой схемой объекты.

Синтаксис соответствующего оператора следующий.

DROP SCHEMA ИМЯ__СХЕМЫ { RESTRICT | CASCADE }

В схеме может не оказаться никаких объектов потому, что объекты (например, таблицы) могут быть удалены с помощью соответствующих команд SQL (например, DROP TABLE). В некоторых реализациях языка предлагается процедура или команда для удаления пользователя, которую можно использовать также и для удаления схемы. Если в используемой вами реализации SQL команда DROP SCHEMA не поддерживается, вы можете удалить схему, удалив из базы данных пользователя, являющегося владельцем схемы

Изменение атрибутов пользователей

Очень важной составляющей процесса управления пользователями является возможность менять атрибуты пользователей уже после создания в базе данных их учетных записей Жизнь администратора базы данных, наверное, сильно упростилась, если бы служащие компании со своими учетными записями в базе данных никогда не продвигались по служебной лестнице, никогда не увольнялись и не принимались на работу. Но в реальности наблюдается высокая текучесть кадров и постоянное изменение обязанностей и, как следствие, потребностей пользователей, что выливается в необходимость постоянного изменения пользовательских привилегий доступа

Вот пример изменения текущего состояния атрибутов пользователя в рамках одной из реализаций SQL (Oracle).

ALTER USER ИМЯ_ПОЛЬЗОВАТЕЛЯ [ IDENTIFIED BY ПАРОЛЬ | EXTERNALLY | GLOBALLY AS 'CN=USER' ]

[ DEFAULT TABLESPACE ИМЯ_ОБЛАСТИ ]

[ TEMPORARY TABLESPACE ИМЯ_ОБЛАСТИ ]

[ QUOTA ЦЕЛОЕ_ЗНАЧЕНИЕ К|М [UNLIMITED ON ИМЯ_ОБЛАСТИ }

[ PROFILE ТИП_ПРОФИЛЯ }

[PASSWORD EXPIRE]

[ACCOUNT [LOCK | UNLOCK]]

[ DEFAULT ROLE РОЛЫ [ , РОЛЬ2 } | ALL

[ EXCEPT РОЛЫ [, РОЛЬ2 | NONE ] ]

В рамках этого оператора можно изменить целый ряд атрибутов пользователя К сожалению, не все реализации SQL предлагают подобную простую команду, позволяющую манипулировать пользователями базы данных Однако некоторые реализации языка для выполнения этой задачи могуг даже предложить средства графического пользовательского интерфейса

Точный синтаксис оператора для изменения атрибутов пользователя вы можете узнать из документации той реализации языка, которую используете Здесь представлен синтаксис оператора ALTER USER Oracle. В большинстве реализаций SQL имеются свои средства для изменения пользовательских ролей, привилегий, атрибутов и паролей

Пользователь может изменить имеющийся у него пароль Точный синтаксис оператора для изменения пароля можно узнать из документации той реализации языка, которую вы используете. В Oracle для этого обычно используется оператор ALTER USER.

Сеансы доступа к базе данных

Сеанс доступа пользователя к базе данных начинается с момента его подключения к ней и заканчивается после отключения от базы данных. В течение времени, когда пользователь остается подключенным к базе данных (т. е. в ходе сеанса доступа), он имеет возможность осуществлять с данными базы данных рахчичные действия, например выполнение запросов и транзакций.

Сеанс SQL инициируется пользователем при подключении его машины-клиента к серверу с помощью оператора CONNECT С момента начала сеанса SQL пользователь имеет возможность выполнить любое число транзакций вплоть до момента его отключения от базы данных, когда сеанс доступа прекращается.

Пользователь имеет возможность явным образом подключаться к базе данных и отключаться от нее (тем самым соответственно начиная и заканчивая сеанс доступа к данным) с помощью следующих команд.

CONNECT TO DEFAULT | CTPOKA1 [ AS CTPOKA2 ] [ USER CTPOKA3 ]

DISCONNECT DEFAULT | CURRENT | ALL | СТРОКА

SET CONNECTION DEFAULT | СТРОКА

He забывайте о том, что синтаксис операторов зависит от реализации языка. Кроме того, в большинстве реализаций пользователю не приходится вводить команды начала и окончания сеанса доступа вручную В большинстве случаев пользователю приходится иметь дело с поставляемыми производителем базы данных или третьей стороной программами, запрашивающими имя пользователя и пароль и осуществляющими подключение к базе данных и отключение от нее

Сеансы доступа к данным могут автоматически отслеживаться - и часто действительно отслеживаются - администраторами базы данных или другими уполномоченными представителями управленческого звена, заинтересованными в получении информации об активности пользователей базы данных. При наблюдении за пользовательской активностью сеансы доступа пользователей ассоциируются с их учетными записями При этом сеанс доступа представляется как отдельный процесс главного компьютера

Удаление учетных записей пользователей базы данных

Удаление учетной записи потьзователя из базы данных или ликвидация возможности его доступа к данным осуществляется парой простых команд Здесь, однако, опять следует отметить, что ввиду отсутствия для этих команд стандартов, необходимо обратиться к документации той реализации SQL, которую вы используете.

К методам ликвидации возможности доступа пользователя к данным можно отнести следующие

• Изменение пароля пользователя

• Удаление учетной записи пользователя из базы данных

• Отмена ранее разрешенных пользователю привилегий доступа к данным

В некоторых реализациях SQL для удаления учетной записи пользователя из базы данных может использоваться команда DROP.

DROP USER ИМЯ_ПОЛЬЗОВАТЕЛЯ [ CASCADE ]

Во многих реализациях языка имеется команда REVOKE, являющаяся противоположностью команды GRANT и позволяющая отменить ранее назначенные пользователю привилегии. В некоторых реализациях SQL команда отмены привилегий имеет следующий синтаксис.