Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#135<< #136 |
СОДЕРЖАНИЕ
КОНФЕРЕНЦИЯ
Восьмая техническая конференция "Корпоративные базы данных-2003". Москва, 17 - 18 апреля 2003 г. Программа конференции
Вы можете скачать программу конференции в формате Word Условия участия Стоимость участия в конференции составляет: Участникам предоставляются методические материалы. Безопасность Microsoft SQL Server 2000 (ПРОДОЛЖЕНИЕ) По материалам статьи Richard Waymire и Ben Thomas: Microsoft SQL Server 2000 Security
1. Введение
Использование ролей очень похоже на использование групп Windows. Роли позволяют собирать пользователей в модули,
для которых могут применяться разрешения. Предоставление (granted), отклонение (denied) или отмена (revoked)
разрешения для роли также будут действительны для любого члена этой роли. Образно говоря, роли похожи на однотипные
задачи, выполняемые рабочими одной профессии в организации. В таком случае, разрешения можно предоставлять для роли,
а не для каждого отдельного рабочего. Поскольку рабочий относится к этой профессии, он является членом роли; когда
он перестаёт относиться к ней, он автоматически удаляется из роли. Такой алгоритм позволяет упростить и сделать
более надёжным процесс многократного предоставления, отклонения и отмены разрешений для пользователей, когда они
включаются в типовой набор задач или наоборот, этот набор задач должен стать для них недоступным. Роль public существует в каждой базе данных, включая системные базы данных master, msdb, tempdb и model. Роль public включает заданные по умолчанию разрешения для пользователей базы данных и не может быть удалена. Функционально, это похоже на группу Everyone в Windows NT 4.0. Каждый пользователь базы данных автоматически становится членом этой роли; поэтому, пользователи не могут быть добавлены или удален из неё. SQL Server 2000 имеет несколько предопределенных ролей. Эти роли подразумевают наборы разрешений, которые нельзя предоставлять учетным записям пользователя по-другому. Есть два типа предопределенных ролей: фиксированные серверные роли и фиксированные роли базы данных. 2.13.3. Фиксированные серверные роли Фиксированные серверные роли действуют в контексте всего сервера. Они существуют вне баз данных. Каждый член фиксированной серверной роли может добавлять другие логины в эту роль. Обратите внимание на то, что все члены группы Windows BUILTIN\Administrators (группа локальных администраторов) - по умолчанию включаются в роль sysadmin. Фиксированные серверные роли SQL Server 2000: Sysadmin - Исполняет любые действия с SQL Server.Serveradmin - Настраивает любые параметры серверной конфигурации, останавливает сервер. Setupadmin - Управляет прилинкованными серверами и процедурами запуска. Securityadmin - Управляет в рамках всего сервера параметрами настройки безопасности, включая прилинкованные сервера и разрешения CREATE DATABASE. Сбрасывает пароли для логинов с SQL Server аутентификацией. Processadmin - Завершает процессы, выполняющиеся на SQL Server. DBcreator - Создает, изменяет, удаляет и восстанавливает любую базу данных. Diskadmin - Управляет дисками и файлами. Bulkadmin - Позволяет не являющемуся членом sysadmin пользователю выполнять операции массовой загрузки. Чтобы добавить пользователей в фиксированную серверную роль, используйте следующую инструкцию Transact-SQL: /* Add Bob to the sysadmin server role */ exec sp_addsrvrolemember "REDMOND\Bob", "sysadmin"
Пользователи и группы Windows могут быть добавлены в серверные роли. ' Declare variables Dim oServer As SQLDMO.SQLServer ' Create a server object and connect Set oServer = CreateObject("SQLDMO.SQLServer") oServer.Connect ("ServerNAME") ' Add Bob to the sysadmin server role oServer.ServerRoles("sysadmin").AddMember ("REDMOND\Bob") Для получения дополнительной информации об использовании фиксированных серверных ролей, см. SQL Server Books Online для SQL Server 2000. 2.13.4. Фиксированные роли базы данных
Фиксированные роли базы данных существуют на уровне базы и есть в каждой базе. Члены административных ролей
DB_owner и DB_security могут управлять членством ролей базы данных; однако, только DB_owner может добавлять других
в фиксированную роль базы данных DB_owner.
DB_owner - Выполняет все виды обслуживания и любые действия по настройке базы данных. Для получения дополнительной информации об использовании фиксированных ролей баз данных, см. SQL Server Books Online для SQL Server 2000. 2.13.5. Определяемые пользователем роли
Определяемые пользователем роли предоставляют простой способ управления разрешениями в базе данных, когда группа
пользователей исполняет фиксированный набор действий в пределах SQL Server 2000, и нет никакой возможности применить
группы Microsoft Windows или если администратор базы данных не имеет права управлять учетными записями пользователя
Windows. В таких случаях, определяемые пользователем роли обеспечивают администратору базы данных ту же самую
гибкостью, как и группы Windows.
Роли приложений позволяют администратору базы данных ограничивать пользовательский доступ к данным, осуществляемый
через приложение, которое использует пользователь. Роли приложений позволяют приложению самому заниматься
аутентификацией пользователей.
· Создайте роль приложения. Первые два шага этого процесса обычно отделяются от последних двух шагов. Поэтому, два представленных ниже фрагмента кода будут на Transact-SQL и Visual Basic соответственно. Скрипт Transact-SQL содержит следующие: /* Create the application role. */ EXEC sp_addapprole "AccAppRole", "ABC" /* Grant permissions to SELECT. */ GRANT SELECT ON authors TO AccAppRole GO Этот код активизирует роль: /* Activate the role. */ EXEC sp_setapprole "AccAppRole", {ENCRYPT N "ABC"} Шифрация пароля не обязательна, но она гарантирует большую безопасность, когда пароль должен передаваться через WAN сеть. Код на Visual Basic: ' Declare variables. Dim oServer As SQLDMO.SQLServer Dim oDbRole As SQLDMO.DatabaseRole ' Create a server object and connect. Set oServer = CreateObject("SQLDMO.SQLServer") oServer.Connect ("ServerNAME") ' Create the Role object. Set oDbRole = CreateObject("SQLDMO.DatabaseRole") ' Set the appropriate properties. oDbRole.Name = "AccAppRole" oDbRole.AppRole = True oDbRole.Password = "ABC" ' Add the Role object to the servers Role collection. oServer.Databases("pubs").DatabaseRoles.Add oDbRole Использовать роль: ' Declare variables. Dim oConnection As ADODB.Connection ' Create the connection object and connect. Set oConnection = CreateObject("ADODB.Connection") oConnection.Provider = "sqloledb" oConnection.Open "Server=ServerNAME;Database=pubs;Trusted_Connection=yes" ' Activate the application role. There is no error handling for this sample. oConnection.Execute "EXEC sp_setapprole 'AccAppRole', {ENCRYPT N 'ABC'}, 'ODBC'"
Стиль шифрации (последний параметр) должен быть установлен для OLE DB и ODBC источники данных. Все другие источники
данных не могут явно шифровать пароль. В таких случаях, Вы должны использовать шифрованный протокол связи с
сервером. Отечественные статьи
Основные принципы выбора прикладного программного обеспечения для построения корпоративной информационной систем
Новые технические статьи Microsoft
SQL Server
Support Center
Using Xp_cmdshell
Семинары, проводимые Digital Design и SQL.RU. Питер. Основы MS SQL Server Analysis Services
Самые популярные темы недели
Ваше
мнение об упражнениях SELECT на http://sql .ipps.ru
Reports in
Excel for MSSQL
|
#135<< #136 |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||