Служба безопасности или защиты данных (если она в компании предусмотрена) обычно занимается документированием заявок пользователей и передает соответствующую информацию администратору базы данных. В ее обязанности входит также своевременное информирование администратора базы данных о том, что какому-либо из пользователей доступ к базе данных уже не требуется.
Системный аналитик или системный администратор обычно отвечает за безопасность вычислительной системы в целом, для чего и создаются учетные записи пользователей и разрабатывается система привилегий доступа. Точно так же, как администратору базы данных, служба безопасности может помогать и системному аналитику.
Пользователю обычно отводится роль, соответствующая выполняемой им работе. Соответствующими оказываются и предоставленные пользователю привилегии. Ни один из пользователей не должен иметь привилегий доступа, выходящих за рамки необходимого. Главной и единственной причиной использования учетных записей пользователей и привилегий является необходимость защиты данных. Если не тот пользователь получит доступ не к тем данным, данные могут быть повреждены или уничтожены, пусть даже и непреднамеренно. После того, как доступ к данным пользователю уже не нужен, его учетную запись необходимо либо удалить из базы данных, либо сделать недействительной.
Каждый из пользователей занимает в базе данных свое место, и поэтому одни пользователи имеют больше привилегий, чем другие. Пользователей базы данных можно сравнить с органами человеческого тела - все части работают вместе в унисон (по крайней мере, это предполагается) с целью выполнения определенной задачи.
Объекты базы данных связываются с именами пользователей, и это называется схемой. Схема - это набор объектов базы данных, принадлежащих одному пользователю базы данных. Этот пользователь называется владельцем схемы. Разница между обычным пользователем базы данных и владельцем схемы состоит в том, что владелец схемы имеет свои объекты в базе данных, в то время как большинство пользователей никакими объектами в базе данных не владеют. Большинство пользователей получают доступ к базе данных для того, чтобы использовать данные, предоставляемые объектами имеющихся в ней схем.
Без стабильной системы управления пользователями базы данных невозможно обеспечить надежное хранение данных. Система управления пользователями начинается с непосредственных руководителей пользователей, через которых подается запрос на доступ к данным, затем по цепочке разрешающих (или запрещающих) структур он попадает к администратору базы данных, который выполняет конкретные действия по созданию учетной записи пользователя в базе данных. Здесь должна быть продумана хорошая система извещения: руководитель пользователя и сам пользователь должны быть извещены о создании в базе данных учетной записи пользователя и получении доступа к данным. Пользовательский пароль должен быть предоставлен только самому пользователю, а последний при первом же входе в базу данных должен немедленно изменить этот пароль.
По поводу создания учетных записей пользователей обратитесь к документации используемой вами реализации языка. Очевидно также, что при создании учетных записей пользователей и управлении ими следует придерживаться правил, принятых в той компании, где вы работаете. В следующих разделах сравниваются процедуры создания учетной записи пользователя в Oracle, Sybase и Microsoft SQL Server.
Создание учетных записей пользователей осуществляется с помощью определенных команд SQL в рамках базы данных. Стандартных команд для создания пользователей нет - каждая реализация языка предлагает свои методы. В некоторых реализациях SQL команды создания учетных записей пользователей похожи, в других - нет. Но независимо от реализации, базовый подход остается одним и тем же.
При получении администратором базы данных или уполномоченным по безопасности заявки на разрешение доступа к данным, эта заявка должна быть тщательно изучена на предмет ншшчия всей необходимой для создания учетной записи пользователя информации в соответствии с требованиями, принятыми в вашей конкретной компании.
Обычно в данном случае считается необходимым указать идентификационный номер, полное имя, адрес, телефон, название отдела, имя базы данных, к которой требуется доступ, а иногда и желательное имя пользователя.
Конкретный вид операторов, используемых для создания учетных записей пользователей, будет показан в следующих разделах.
Процесс создания учетной записи пользователя в 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, должна быть следующей.
1. Создание имени пользователя базы данных SQL Server с указанием пароля и базы данных для доступа.
2. Добавление пользователя в соответствующую базу данных.
3. Наделение пользователя необходимыми привилегиями доступа.
Учетная запись пользователя создается оператором следующего вида.
SP_ADDLOGIN ИМЯ_ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ, [, БАЗА_ДАННЫХ ]
В базу данных пользователь добавляется с помощью оператора следующего вида.
SP_ADDUSER ИМЯ_ПОЛЬЗОВАТЕЛЯ [, ИМЯ_В_БД [, ИМЯ_ГРУППЫ } ]
Наделение пользователя необходимыми привилегиями доступа осуществляется с помощью оператора следующего вида.
GRANT PRIV1 [ , PRIV2, ... ] ТО ИМЯ_ПОЛЬЗОВАТЕЛЯ
Схемы создаются с помощью оператора CREATE SCHEMA. Синтаксис этого оператора следующий.
CREATE SCHEMA [ ИМЯ_СХЕМЫ ] ( ИМЯ_ПОЛЬЗОВАТЕЛЯ ]
[ DEFAULT CHARACTER SET НАБОР_СИМВОЛОВ ]
[ PATH ИМЯ_СХЕМЫ [ , ИМЯ_СХЕМЫ ] ]