
- •ГЛАВА 7 Команды
- •Обзор
- •alter database
- •alter role
- •alter table
- •begin...end
- •begin transaction
- •break
- •case
- •checkpoint
- •close
- •coalesce
- •commit
- •compute
- •connect to...disconnect
- •continue
- •create database
- •create default
- •create existing table
- •create function (SQLJ)
- •create index
- •create plan
- •create procedure
- •create procedure (SQLJ)
- •create proxy_table
- •create role
- •create rule
- •create schema
- •create table
- •create trigger
- •create view
- •dbcc
- •deallocate cursor
- •declare
- •declare cursor
- •delete
- •delete statistics
- •disk init
- •disk mirror
- •disk refit
- •disk reinit
- •disk remirror
- •disk unmirror
- •drop database
- •drop default
- •drop function (SQLJ)
- •drop index
- •drop procedure
- •drop role
- •drop rule
- •drop table
- •drop trigger
- •drop view
- •dump database
- •dump transaction
- •execute
- •fetch
- •goto label
- •grant
- •if...else
- •insert
- •kill
- •load database
- •load transaction
- •lock table
- •nullif
- •online database
- •open
- •order by
- •prepare transaction
- •quiesce database
- •raiserror
- •readtext
- •reconfigure
- •remove java
- •reorg
- •return
- •revoke
- •rollback
- •rollback trigger
- •save transaction
- •select
- •setuser
- •shutdown
- •truncate table
- •union
- •update
- •update all statistics
- •update partition statistics
- •update statistics
- •waitfor
- •where
- •while
- •writetext

alter role
alter role
Описание |
Определяет отношения взаимного исключения между ролями; добавляет, |
|
удаляет и изменяет пароли для ролей; определяет срок действия пароля, |
|
минимальную длину пароля и максимальное количество неудачных по- |
|
пыток подключения к серверу для указанной роли. |
Синтаксис |
alter role роль1 { add | drop } exclusive |
|
{ membership | activation } роль2 |
|
alter role имя_роли [add passwd "пароль" | |
|
drop passwd] [lock | unlock] |
|
alter role { имя_роли | "all overrides" } |
|
set { passwd expiration | min passwd length | |
|
max failed_logins } значение_параметра |
Параметры |
роль1 |
|
Одна из ролей в паре взаимоисключающих ролей. |
|
add |
|
Добавляет роль, создавая пару ролей, находящихся в отношении |
|
взаимного исключения; добавляет пароль к роли. |
|
drop |
|
Удаляет роль из пары ролей, находящихся в отношении взаимного |
|
исключения; удаляет пароль из роли. |
|
exclusive |
|
Определяет две указанные роли как взаимоисключающие. |
|
membership |
|
Не позволяет предоставлять пользователям обе роли одновременно. |
|
activation |
|
Позволяет предоставлять пользователю обе роли одновременно, но не |
|
разрешает активировать их одновременно. |
|
роль2 |
|
Вторая из ролей в паре взаимоисключающих ролей. |
|
имя_роли |
|
Имя роли, пароль которой нужно добавить, удалить или изменить. |
|
passwd |
|
Добавляет пароль к роли. |
280

ГЛАВА 7 Команды
пароль
Пароль, который нужно добавить к роли. Пароли должны соответст- вовать правилам для идентификаторов, а их длина должна быть не менее шести символов. Нельзя использовать в качестве паролей переменные.
lock
Блокирует указанную роль.
unlock
Разблокирует указанную роль.
all overrides
Применяет настройку ко всему серверу, а не к определенной роли.
set
Активирует следующий за ним параметр.
passwd expiration
Определяет срок действия пароля в днях. Это может быть любое значение от 0 до 32767 включительно.
min passwd length
Указывает минимальную длину, допустимую для заданного пароля.
max failed_logins
|
Указывает максимальное количество неудачных попыток |
|
подключения к серверу для заданного пароля. |
|
значение_параметра |
|
Указывает значение параметра passwd expiration, min passwd length или |
|
max failed_logins. Для активации параметра all overrides переменной |
|
значение_параметра должно быть присвоено значение -1. |
Примеры |
Пример 1. Определение ролей intern_role и specialist_role как взаимо- |
|
исключающих: |
alter role intern_role add exclusive membership specialist_role
Пример 2. Определение ролей как взаимоисключающих на уровне членства (membership) и на уровне активации (activation):
alter role specialist_role add exclusive membership intern_role alter role intern_role add exclusive activation surgeon_role
Пример 3. Добавление пароля к существующей роли:
alter role doctor_role add passwd "physician"
Пример 4. Удаление пароля из существующей роли:
alter role doctor_role drop passwd
281

alter role
Пример 5. Блокирование роли physician_role:
alter role physician_role lock
Пример 6. Разблокирование роли physician_role:
alter role physician_role unlock
Пример 7. Установка для роли physician_role максимального числа неудачных попыток подключения к серверу, равного 5:
alter role physician_role set max failed_logins 5
Пример 8. Установка минимальной длины пароля (5 символов) для существующей роли physician_role:
alter role physician_role set min passwd length 5
|
Пример 9. Снятие ограничения на минимальную длину пароля для всех |
|
|
ролей: |
|
|
alter role "all overrides" set min passwd length -1 |
|
|
Пример 10. Снятие ограничения на максимальное количество неудачных |
|
|
попыток подключения к серверу для всех ролей: |
|
|
alter role "all overrides" set max failed_logins -1 |
|
Использование |
• Команда alter role определяет отношения взаимного исключения |
|
|
между ролями и добавляет, удаляет и изменяет пароли ролей. |
|
|
• Дополнительную информацию об изменении ролей см. в книге |
|
|
Руководство по системному администрированию. |
|
|
• Параметр all overrides удаляет системные настройки, сделанные |
|
|
процедурой sp_configure с любым из следующих параметров: |
|
|
• |
passwd expiration |
|
• max failed_logins |
|
|
• |
min passwd length |
Когда удаляется пароль для роли, удаляются значения параметров срока действия пароля и максимального количества неудачных попыток подключения к серверу.
Взаимоисключающие роли
•Нет необходимости придерживаться какого-либо определенного порядка при указании ролей, находящихся в отношении взаимного исключения, или в иерархии ролей.
•Можно использовать взаимное исключение вместе с иерархией ролей, чтобы наложить ограничения на пользовательские роли.
282

ГЛАВА 7 Команды
• Отношения взаимного исключения на уровне членства (membership) являются более сильным ограничением, чем отношения взаимного исключения на уровне активации (activation). Если две роли опреде- лены как взаимоисключающие на уровне членства, то они неявно будут таковыми и на уровне активации.
• Если две роли, уже определенные как взаимоисключающие на уров- не членства, будут определены как взаимоисключающие на уровне активации, то это никак не отразится на определениях членства.
Отношения взаимного исключения на уровне активации добавля- ются и удаляются независимо от взаимного исключения на уровне членства.
• Нельзя определить две роли как взаимоисключающие после того, как обе эти роли были предоставлены пользователям или ролям. Необходимо отозвать одну из предоставленных ролей, прежде чем пытаться определить эти роли как взаимоисключающие на уровне членства.
• Если две роли определены как взаимоисключающие на уровне акти- вации, то администратор по безопасности может предоставить обе роли одному пользователю, но эти роли не могут быть одновременно активными у этого пользователя.
• Если администратор по безопасности определяет две роли как взаи- моисключающие на уровне активации и пользователи уже активи- ровали обе роли или установили активацию обеих ролей при входе в систему (режим по умолчанию), Adaptive Server делает эти роли взаимоисключающими, но выдает предупреждение с именами соот- ветствующих пользователей с конфликтующими ролями. Активиро- ванные роли пользователей не изменяются.
Изменение паролей ролей
• Для изменения пароля роли необходимо сначала удалить существу-
|
|
ющий пароль, а затем добавить новый, как показано ниже: |
|
|
alter role doctor_role drop passwd |
|
|
alter role doctor_role add passwd "physician" |
|
|
|
|
|
Примечание. Срок действия паролей, назначенных пользователь- |
|
|
ским ролям, не ограничен. |
|
|
|
Стандарты |
Уровень соответствия стандарту SQL92: расширение Transact-SQL. |
|
Полномочия |
Команду alter role может выполнять только администратор по |
|
|
безопасности системы. |
283

alter role
См. также |
Команды |
create role, drop role, grant, revoke, set |
|
Функции |
mut_excl_roles, proc_role, role_contain, role_id, role_name |
Системные процедуры sp_activeroles, sp_displaylogin, sp_displayroles, sp_modifylogin
284