Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Инсталляция полномочий непосредственно из процедуры
Инсталляция полномочий непосредственно из процедуры
Процедура GRANT_PERMS, показанная в листинге 35.2, в основном похожа на процедуру PERMSCRIPT из листинга 35.1. Вместо того чтобы создавать набор выходных строк для выполнения под isql в качестве скрипта, она непосредственно устанавливает полномочия через EXECUTE STATEMENT. Такая техника недоступна в Firebird 1,0.x.
Листинг 35.2. Процедура полномочий
/* (с) Helen Borrie 2004, free for use and modification under the Initial Developer's Public License */
SET TERM ^;
CREATE PROCEDURE GRANT_PERMS
(CMD VARCHAR(6) ,
PRIV CHAR(10),
USR VARCHAR (31) ,
ROLENAME VARCHAR(31),
GRANTOPT SMALLINT)
AS
DECLARE VARIABLE RELNAME VARCHAR (31);
DECLARE VARIABLE EXESTRING VARCHAR(1024) = '';
DECLARE VARIABLE EXESTUB VARCHAR (1024 ) = '';
BEGIN
IF (ROLENAME = ' ' ) THEN ROLENAME = NULL;
IF (USR = '') THEN USR = NULL;
IF (PRIV = '') THEN PRIV = NULL;
IF ((PRIV IS NULL AND ROLENAME IS NULL) OR USR IS NULL) THEN EXIT;
IF (CMD STARTING WITH 'G') THEN
EXESTUB = 'GRANT ';
ELSE
EXESTUB = 'REVOKE ';
IF (ROLENAME IS NOT NULL) THEN
BEGIN
IF (EXESTUB = 'GRANT') THEN
BEGIN
EXESTUB = EXESTUB || ROLENAME || ' TO ' || USR;
IF (GRANTOPT = 1) THEN
EXESTUB = EXESTUB || ' WITH ADMIN OPTION';
ELSE
EXESTUB = EXESTUB || ROLENAME || ' FROM ' || USR;
EXECUTE STATEMENT EXESTUB;
END
ELSE
BEGIN
IF (PRIV = 'ANY') THEN
EXESTUB = EXESTUB || 'SELECT,DELETE,INSERT,UPDATE,REFERENCES ON ';
ELSE
EXESTUB = EXESTUB || PRIV || ' ON ' ;
FOR SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE RDB$RELATION_NAME NOT STARTING WITH 'RDB$'
INTO : RELNAME DO
BEGIN
EXESTRING = EXESTUB || :RELNAME || ' ';
IF (CMD STARTING WITH 'G') THEN
EXESTRING = EXESTRING || 'TO ';
ELSE
EXESTRING = EXESTRING || 'FROM ';
EXESTRING = EXESTRING || USR;
IF (GRANTOPT = 1) THEN
EXESTRING = EXESTRING || ' WITH GRANT OPTION';
EXECUTE STATEMENT EXESTRING;
END
END
END ^
SET TERM ;^
Если вы сами хотите поэкспериментировать с этими скриптами и изменить их для ваших потребностей, вы можете найти исходные тексты в разделе Download на http://www.apress.com, в файле permscripts.sql.
Пора дальше
Следующая (и последняя) глава этой части содержит множество тем, связанных с архитектурными вариантами сервера, включая раздел по инсталляции и использованию встроенного Суперсервера под Windows. Установки файла конфигурации в firebird.conf или isc config/ibconfig могут быть найдены в этой главе вместе с темой безопасности параметров конфигурации, связанных с использованием в Firebird внешних выполняемых и других файлов.
- Текстовые сообщения процедуры POST
- Инсталляция клиентов
- Хранимые процедуры выбора
- Может ли посетитель попасть в нужный раздел сайта непосредственно с домашней страницы?
- Непосредственно перед интервью
- Выполняемые процедуры
- Эмоции, связанные непосредственно с покупательским опытом
- 6.2. Временное получение полномочий пользователя root
- Инсталляция нового ядра и его использование
- 4.2.8. Деятельность внутреннего злоумышленника с точки зрения формальных полномочий
- Инсталляция и настройка сервера POP
- Инсталляция и настройка сервера IMAP