KnigaRead.com/

W Cat - SQL за 24 часа

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн W Cat, "SQL за 24 часа" бесплатно, без регистрации.
Перейти на страницу:

По поводу создания учетных записей пользователей обратитесь к документации используемой вами реализации языка. Очевидно также, что при создании учетных записей пользователей и управлении ими следует придерживаться правил, принятых в той компании, где вы работаете. В следующих разделах сравниваются процедуры создания учетной записи пользователя в Oracle, Sybase и Microsoft SQL Server.

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

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

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

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

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


Создание учетной записи пользователя в Oracle

Процесс создания учетной записи пользователя в Oracle состоит из двух шагов.

1. Создание учетной записи пользователя базы данных с параметрами по умолчанию

2. Наделение пользователя необходимыми привилегиями доступа

Синтаксис оператора для создания учетной записи пользователя имеет следующий вид.

CREATE USER ИМЯ_ПОЛЬЗОВАТЕЛЯ

IDENTIFIED BY [ ПАРОЛЬ | EXTERNALLY ]

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

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

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

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

[PASSWORD EXPIRE | ACCOUNT [LOCK UNLOCK]]

Такого вида оператор может быть использован для добавления пользователя в базу данных Oracle, а также в реляционные базы данных некоторых других реализаций.

Если вы не используете Oracle, не следует слишком вникать в смысл некоторых из предлагаемых данным синтаксисом опций. TABLESPACE означает логическую область, в которой размещаются объекты базы данных, в частности, таблицы и индексы. DEFAULT TABLESPACE задает область, используемую для объектов, создаваемых данным пользователем. TEMPORARY TABLESPACE задает область хранения данных для операций сортировки, осуществляемых в ходе выполнения запросов пользователя. QUOTA ограничивает сверху доступный пользователю объем конкретной логической области. PROFILE определяет профиль базы данных, предлагаемый пользователю.

Для наделения пользователя необходимыми привилегиями доступа используется оператор следующего вида.

GRANT PRIV1 [ , PRIV2, ... ] TO USERNAME | ROLE [, USERNAME ]

С помощью одного оператора GRANT можно наделить одной или несколькими привилегиями одного или нескольких пользователей одновременно.


Создание учетных записей пользователей в Sybase и Microsoft SQL Server

Последовательность шагов, которые необходимо выполнить при создании учетной записи пользователя в базе данных Sybase или Microsoft SQL Server, должна быть следующей.

1. Создание имени пользователя базы данных SQL Server с указанием пароля и базы данных для доступа.

2. Добавление пользователя в соответствующую базу данных.

3. Наделение пользователя необходимыми привилегиями доступа.

Учетная запись пользователя создается оператором следующего вида.

SP_ADDLOGIN ИМЯ_ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ, [, БАЗА_ДАННЫХ ]

В базу данных пользователь добавляется с помощью оператора следующего вида.

SP_ADDUSER ИМЯ_ПОЛЬЗОВАТЕЛЯ [, ИМЯ_В_БД [, ИМЯ_ГРУППЫ } ]

Наделение пользователя необходимыми привилегиями доступа осуществляется с помощью оператора следующего вида.

GRANT PRIV1 [ , PRIV2, ... ] ТО ИМЯ_ПОЛЬЗОВАТЕЛЯ


Оператор CREATE SCHEMA

Схемы создаются с помощью оператора CREATE SCHEMA. Синтаксис этого оператора следующий.

CREATE SCHEMA [ ИМЯ_СХЕМЫ ] ( ИМЯ_ПОЛЬЗОВАТЕЛЯ ]

[ DEFAULT CHARACTER SET НАБОР_СИМВОЛОВ ]

[ PATH ИМЯ_СХЕМЫ [ , ИМЯ_СХЕМЫ ] ]

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

Вот пример:

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.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*