|
Программирование >> Программирование баз данных
Окончанш табл. 22.6 Роль Описание bulkadmin Имеет определенные отличительные особенности. Она позволяет явно предоставить пользователю права на выполнение оператора bulk insert, для того чтобы не приходилось привлекать к выполнению операций массовой обработки данных пользователя с правами sysadmin. Откровенно говоря, автор считает, что право выполнять операторы bulk insert следовало бы предоставлять с помощью команды grant, как и права на выполнение всех прочих операторов, но этого не предусмотрено. Следует учитывать, что если даже пользователь добавлен к группе bulkadmin, он получает право лишь на выполнение операторов bulk insert, ho не права доступа к таблицам, по отношению к которым должны применяться эти операторы. Это означает, что пользователя, на которого возложена задача выполнения операций массовой обработки данных, следует не только ввести в состав членов роли bulkadmin, но и предоставить ему с помощью оператора grant права на выполнение операторов insert по отношению ко всем таблицам, на которых он должен выполнять операторы bulk insert. Кроме того, члену роли bulkadmin необходимо предоставить соответствующие права на выполнение операторов select применительно ко всем таблицам, которые будут применяться для выборки данных в используемых им операторах bulk insert Выше уже отмечались недостатки, связанные с использованием понятия глобальных пользователей. В связи с этим автор с большим одобрениеч воспринял известие о том, что начиная с версии SQL Server 7.0 бьша предусмотрена новая роль sysadmin. Благодаря появлению этой роли отпала необходимость предоставлять в чье-то распоряжение на постоянной основе учетную запись sa. Достаточно предоставить пользователям, которым необходим доступ на этом уровне, членство в роли sysadmin, и больше не потребуется регистрировать их в качестве пользователей sa. Роли базы данных Область действия ролей базы данных ограничивается единственной базой данных; это означает, что включение пользователя в состав членов роли db datareader в одной базе данных не влечет за собой то, что он станет членом этой роли в другой базе данных. Роли базы данных подразделяются на две подкатегории: фиксированные и определяемые пользователем. Фиксированные роли базы данных Во многом аналогично тому, что предусмотрено несколько фиксированных ролей сервера, существует также целый ряд фиксированных ролей базы данных. Некоторые из фиксированных ролей базы данных имеют специальное предопределенное назначение, которое невозможно продублировать с помощью обычных операторов (иными словами, невозможно создать определяемую пользователем роль базы данных, которая обладала бы тем же набором функциональных средств). Тем не менее большая часть ролей базы данных предназначена для использования в обычных ситуациях и упрощения выполняемых пользователем функций (табл. 22.7). Таблица 22.7. Фиксированные роли базы данных Роль Описание db. owner db accessadmin db datareader db datawriter db ddladmin db securityadmin db backupoperator db denydatareader db de ny da t a wr i t e Воплощает в себе функции всех прочих фиксированных ролей базы данных. С помощью роли db owner можно предоставить пользователю возможность выполнять функции и задачи, доступные лишь владельцу базы данных Обеспечивает выполнение части функций, аналогичных функциям роли сервера securityadmin. Различия между этими ролями состоят в том, что функции роли db accessadmin ограничиваются отдельной базой данных, в которой она назначена, кроме того, с помощью этой роли не обеспечивается создание учетных записей пользователей (речь не идет об отдельных правах доступа). Таким образом, роль db accessadmin не позволяет создавать новые учетные записи SQL Server, но члены этой роли имеют возможность добавлять пользователей и группы Windows, а также существующие учетные записи SQL Server в базу данных Позволяет выполнять оператор select применительно ко всем пользовательским таблицам в базе данных Предоставляет возможность выполнять операторы insert, update и delete по отношению ко всем пользовательским таблицам в базе данных С помощью этой роли можно добавлять, модифицировать и удалять объекты в базе данных Роль db securityadmin, как и роль db owner, позволяет выполнять часть функций роли сервера securityadmin на уровне базы данных. Роль базы данных db securityadmin не предоставляет возможности создавать новые учетные записи пользователей в базе данных, но позволяет управлять ролями и членами ролей базы данных, а также регламентировать права на выполнение операторов и права доступа к объектам в базе данных Обеспечивает резервное копирование базы данных (об этом можно догадаться по имени самой этой роли) Обеспечивает выполнение функций, эквивалентных оператору deny select, применительно к каждой таблице и представлению в базе данных Аналогична роли db denydatareader, но распространяется только на операторы insert, update и delete Как и фиксированные роли сервера, все описанные в табл. 22.7 фиксированные роли базы данных чаще всего применяются только на предприятиях с очень крупными базами данных. Некоторые из этих ролей невозможно заменить определяемыми пользователем ролями базы данных, а другие просто являются удобным средством, позволяющим быстро справляться с типичными ситуациями, возникающими в ходе повседневной эксплуатации базы данных. Определяемые пользователем роли базы данных Предусмотренные заранее фиксированные роли базы данных в действительности предназначены для создания на их основе ролей базы данных, отражающих конкретные потребности предприятия. Истинной основой системы обеспечения безопасности должно стать целенаправленное создание и присваивание определяемых пользо- вателем ролей базы данных. При создании этих ролей необходимо принять решение о том, какие права они должны включать. Таким определяемым пользователем ролям можно назначать права на выполнение операторов GRANT, DENY и REVOKE по такому же принципу, как отдельным пользователям. Преимущество использования ролей состоит в том, что роли дают возможность классифицировать пользователей по категориям потребностей в доступе, поскольку роли позволяют вносить изменения в одном месте, а затем распространять эти изменения по всем аналогичным пользователям (по крайней мере по тем пользователям, которым назначена данная роль). Создание определяемой пользователем роли Для создания собственной определяемой пользователем роли предназначена системная хранимая процедура sp addrole. Вызов этой хранимой процедуры имеет следующий простой синтаксис: sp addrole [©rolename =] <role name> [, [©ownername =] < owner >] Параметр < role name > определяет, какое имя должна иметь создаваемая роль. Имена ролей должны соответствовать общепринятой схеме именования, которая может быть основана на использовании названия отдела (Accounting, Sales, Marketing и т.д.) или определенньгх функциональных обязанностей (CustomerService, Salesperson, President и т.д.). Применение ролей, которые определены подобным образом, позволяет упростить добавление новых учетных записей пользователей к системе. Например, после приема на работу в отдел бухгалтерского учета нового сотрудника достаточно ввести его в состав членов роли Accounting (а если применяется еще более глубокая специализация, то в состав, допустим, роли AccountsPayable) и больше о нем не задумываться, поскольку не требуется каждый раз анализировать, какой должна быть совокупность прав для того или другого сотрудника. Параметр < owner > имеет то же назначение, что и применительно ко всем другим объектам в системе, т.е. выполняет функции владельца. По умолчанию таковым является владелец базы данных, и автор настоятельно рекомендует оставить неизменным это заданное по умолчанию значение (иными словами, следует проигнорировать этот необязательный параметр). Перейдем к практическим действиям и создадим конкретную роль: USE NorthwindSecure EXEC sp addrole OurTestRole После выполнения этого оператора должно появиться сообщение о том, что новая роль добавлена. Теперь необходимо првдать определенную значимость вновь созданной роли; под этим подразумевается, что роли должны быть назначены некоторые права. Для этого применяются операторы GRANT, DENY или REVOKE по такому же принципу, как и для обычных учетных записей пользователей, созданных ранее в данной главе: use NorthwindSecure GRANT SELECT ON Territories TO OurTestRole После выполнения этого оператора все пользователи, принадлежащие к указанной роли, получают право на выполнение оператора SELECT применительно к таблице Territories (если только где-либо в составе информации о безопасности, относящейся к этим пользователям, не задана команда DENY). С этого момента можно приступать к добавлению пользователей.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |