Возникла такая проблема: я написал програмку, которая синхронизирует схемы баз данных. Очевидно что пока идёт процес синхронизации все пользователи должны быть "отконекчены". Нашёл способ блокировать пользователей "alter user USERNAME account lock" (потом делаю unlock), но это проблему не решает. Есть два момента: 1) "Подконекченые" пользователи работают, как работали раньше.(решение — можно убить сесии); 2) Пользователя, под которым я конекчусь("хазяина схемы"), я не могу таким образом "отрезать" (я не смогу потом выполнить скрипт синхронизации схемы). А проблема в следующем: пользователи могут с другой программы подконектится под этим пользователём(см. 2)). Как можно блокировать схему базы данных, чтоб никто не мог там лазить???
Здравствуйте, Oleg_Dem, Вы писали:
O_D>Как можно блокировать схему базы данных, чтоб никто не мог там лазить???
Выполняй синхронизацию под пользователем system.
O_D>Возникла такая проблема: я написал програмку, которая синхронизирует схемы баз данных. Очевидно что пока идёт процес синхронизации все пользователи должны быть "отконекчены".
Вовсе не очевидно. Может достаточно заблокировать таблицы?
Restricting Access to an Instance at Startup
You can start an instance, and optionally mount and open a database, in restricted mode so that the instance is available only to administrative personnel (not general database users). Use this mode of instance startup when you need to accomplish one of the following tasks:
Perform an export or import of database data
Perform a data load (with SQL*Loader)
Temporarily prevent typical users from using data
During certain migration and upgrade operations
Typically, all users with the CREATE SESSION system privilege can connect to an open database. Opening a database in restricted mode allows database access only to users with both the CREATE SESSION and RESTRICTED SESSION system privilege. Only database administrators should have the RESTRICTED SESSION system privilege. Further, when the instance is in restricted mode, a database administrator cannot access the instance remotely through an Oracle Net listener, but can only access the instance locally from the machine that the instance is running on.
Start an instance (and, optionally, mount and open the database) in restricted mode by using the STARTUP command with the RESTRICT clause:
STARTUP RESTRICT
Later, use the ALTER SYSTEM statement to disable the RESTRICTED SESSION feature: