Ова страница је машински преведена. Прочитајте енглески оригинал. English

SQL Language Extension: CREATE/ALTER/CREATE_OR_ALTER/DROP USER

Омогућава управљање корисницима из редовне базе података.

Аутор:

Alex Peshkoff [email protected]

Синтакса је:

CREATE USER name [ options ] [ TAGS ( tag [, tag [, tag ...]] ) ] ALTER USER name [ SET ] [ options ] [ TAGS ( tag [, tag [, tag ...]] ) ] ALTER CURRENT USER [ SET ] [ options ] [ TAGS ( tag [, tag [, tag ...]] ) ] CREATE OR ALTER USER name [ SET ] [ options ] [ TAGS ( tag [, tag [, tag ...]] ) ] DROP USER name [ USING PLUGIN name ];

где је OPTIONS листа следећих опција:

- PASSWORD ‘password’

- FIRSTNAME ‘firstname’

- MIDDLENAME ‘middlename’

- LASTNAME ’lastname'

- ACTIVE

- INACTIVE

- USING PLUGIN name

и сваки TAG може имати један од два облика:

name = ‘string value’

или:

DROP name

где је NAME било који важећи SQL идентификатор.

Опис:

Омогућава додавање, измену и брисање корисника у сигурносној бази података коришћењем SQL језика.

Firebird од верзије 3.0 подржава више сигурносних база података. gsec алат и services API

не подржавају ово и њихова употреба за управљање корисницима је застарела.

CREATE и DROP клаузуле су доступне само за SYSDBA (или другог корисника са додељеном RDB$ADMIN улогом у сигурносној бази података). Обичан корисник може да ALTER-ује своју лозинку, широка имена и тагове. Покушај измене

другог корисника ће пропасти. Такође ће пропасти покушај да себе учините неактивним или активним. Да бисте избегли куцање свог имена сваки пут, постоји поједностављени облик ALTER CURRENT USER.

Најмање једна од PASSWORD, FIRSTNAME, MIDDLENAME, LASTNAME, ACTIVE, INACTIVE или TAGS мора бити присутна у ALTER USER изјави. Такође, имајте на уму да је PASSWORD клаузула обавезна приликом креирања новог корисника.

PASSWORD клаузула је сасвим самообјашњавајућа. Клаузуле FIRSTNAME, MIDDLENAME и LASTNAME такође, али могу се користити и за чување било којих кратких информација о кориснику. Клаузуле INACTIVE/ACTIVE се користе за онемогућавање корисниковог пријављивања на сервер без уклањања са листе и за враћање те могућности. USING PLUGIN клаузула омогућава рад са корисницима не само са подразумеваним менаџмент додатком (први наведен у UserManager параметру у firebird.conf) већ и са другим. gsec алат и services API не подржавају више додатака за управљање корисницима - увек се користи подразумевани.

TAGS је листа атрибута дефинисаних од стране крајњег корисника. Дужина вредности не сме да прелази 255 бајтова.

Додељивање вредности имену поставља нови или мења постојећи таг. Да бисте уклонили таг користите DROP опцију.

Постављање листе тагова за корисника задржава раније постављене тагове ако тренутно нису поменути.

Напомена - UID/GID, унети преко застарелог gsec-а, третирају се као тагови у SQL интерфејсу.

За приступ листи корисника изаберите из виртуелних табела SEC$USERS и SEC$USER_ATTRIBUTES.

Примери (претпоставимо UserManager=Srp,Legacy_UserManager у firebird.conf):

Опште:

CREATE USER alex PASSWORD 'test'; ALTER USER alex SET FIRSTNAME 'Alex' LASTNAME 'Peshkoff'; CREATE OR ALTER USER alex SET PASSWORD 'IdQfA'; DROP USER alex; ALTER CURRENT USER SET PASSWORD 'SomethingLongEnough' USING PLUGIN srp;

Рад са таговима:

ALTER USER alex SET TAGS (a='a', b='b'); NAME VALUE ================ ============================== A a B b ALTER USER alex SET TAGS (b='x', c='d'); NAME VALUE ================ ============================== A a B x C d ALTER USER alex SET TAGS (drop a, c='sample'); NAME VALUE ================ ============================== B x C sample

Приказ листе корисника:

SELECT CAST(U.SEC$USER_NAME AS CHAR(20)) LOGIN, CAST(A.SEC$KEY AS CHAR(10)) TAG, CAST(A.SEC$VALUE AS CHAR(20)) "VALUE", U.SEC$PLUGIN "PLUGIN" FROM SEC$USERS U LEFT JOIN SEC$USER_ATTRIBUTES A ON U.SEC$USER_NAME = A.SEC$USER_NAME AND U.SEC$PLUGIN = A.SEC$PLUGIN;

LOGIN TAG VALUE PLUGIN

==================== ========== ==================== =============================== SYSDBA <null> <null> Srp ALEX B x Srp ALEX C sample Srp SYSDBA <null> <null> Legacy_UserManager

Напомена!

Ова функција у великој мери зависи од додатка за управљање корисницима. Имајте у виду да се неке опције игноришу када се користи застарели додатак за управљање корисницима.