Oracle отключить всех пользователей
2. Три способа закрыть базу данных Oracle
Начните с базы данных, закройте базу данных, и экземпляр также разделен на 3 этапа:Закройте базу данных -> экземпляр удалите базу данных -> завершите экземпляр。
2.1 Нормальный (нормальный метод закрытия)
команда: shutdown nomal
Примечание. Когда данные закрываются обычным способом, Oracle выполняет следующие операции:
- Не позволяйте пользователям устанавливать новые подключения.
- Подождите, пока все подключенные в данный момент пользователи активно отключатся (Oracle не будет немедленно отключать текущего пользователя таким образом, эти пользователи по-прежнему выполняют связанные операции)
- После отключения всех пользователей немедленно выключите, удалите базу данных и завершите работу экземпляра. (Поэтому, когда база данных обычно закрыта обычным способом, все онлайн-пользователи должны быть уведомлены о необходимости как можно скорее отключиться)
2.2 Немедленно (режим немедленного закрытия)
команда: shutdown immediate
- Запретить любому пользователю устанавливать новое соединение, не позволяя текущему подключенному пользователю начинать любую новую транзакцию.
- Oracle не ждет, пока онлайн-пользователи активно отключатся, принудительно завершат текущую транзакцию пользователя,Откатить все незавершенные транзакции. (Если незавершенных транзакций слишком много, этот метод займет много времени, чтобы завершить и откатить транзакции)
- Выключите и удалите базу данных напрямую, а также завершите работу экземпляра.
2.3 Транзакционный (режим закрытия транзакции)
команда: shutdown transactional
Примечание. Этот метод находится между обычным методом закрытия и методом немедленного закрытия, время отклика будет быстрее и обработка будет более подходящей. Процесс выполнения выглядит следующим образом:
Запретить любому пользователю устанавливать новое соединение, в то же время не позволяя текущему подключенному пользователю начинать любую новую транзакцию.
Подождите, пока будут отправлены все незафиксированные активные транзакции, А потом сразу отключите пользователя.
Выключите и удалите базу данных напрямую, а также завершите работу экземпляра.
2.4 Прервать (завершить метод закрытия)
команда: shutdown abort
Примечание. Это грубый способ закрытия. Если ни один из трех предыдущих методов не может быть закрыт, вы можете попробовать использовать метод завершения, чтобы закрыть базу данных. Но закрытие базы данных таким образом приведет к потере некоторой информации о данных.При перезапуске экземпляра и открытии базы данных фоновый процесс SMON выполнит операцию восстановления экземпляра. В обычных обстоятельствах вам следует избегать использования этого метода для закрытия базы данных. Процесс выполнения выглядит следующим образом:
Запретить любому пользователю устанавливать новое соединение, не позволяя текущему подключенному пользователю начинать любую новую транзакцию.
Немедленно завершите выполняемый в данный момент оператор SQL.
Любые незафиксированные транзакции не будут отменены.
Отключите всех пользователей напрямую, закройте и удалите базу данных и завершите работу экземпляра.
Шаблон коллекции объектов пользователя
Схема является вспомогательным объектом пользователя и зависит от существования объекта. Коллекция всех объектов, принадлежащих пользователю в базе данных, является режимом пользователя. Эти объекты включают таблицы, индексы, представления и хранимые процедуры. Вы можете просмотреть владельца объекта через представление dba_objects.
Чтобы ссылаться на все объекты пользователя, вы можете использовать форму user.schema.
Создать пользовательский триггер
Схема пользователя имеет то же имя, что и пользователь, например, имя схемы системы пользователя также является системой.
Просмотр текущего вошедшего в систему пользователя с помощью оператора Sao-up
sys_context - системная функция; sys_context («userenv», «current_user») получает имя пользователя текущего пользователя; sys_context («userenv», «current_schema») получает схему текущего пользователя
среда SQL Server Management Studio 2008
интерфейс изменился для SQL Server Management studio 2008, вот шаги (через:Тим Люн)
- щелкните правой кнопкой мыши сервер в Обозревателе объектов и выберите "Монитор активности".
- когда это откроется, разверните группу процессы.
- теперь используйте раскрывающийся список для фильтрации результатов по имени базы данных.
- выключите подключения к серверу, выбрав опцию "убить процесс" Правой Кнопкой Мыши.
вы хотите установить БД в однопользовательский режим, выполните восстановление, а затем установите его обратно в многопользовательский:
этот код работал для меня, он убивает все существующие подключения к базе данных. Все, что вам нужно сделать, это изменить строку Set @dbname = 'databaseName', чтобы она имела имя вашей базы данных.
после этого я смог восстановить его
перезапуск SQL server отключит пользователей. Простой способ я нашел - хорошо также, если вы хотите отключить сервер.
но по какой-то очень странной причине опция "Take Offline" не делает этого надежно и может зависнуть или запутать консоль управления. Перезапуск, а затем автономные работы
иногда это опция-если, например, вы остановили веб-сервер, который является источником соединений.
ни один из них не работал для меня, не мог удалить или отключить текущих пользователей. Также не удалось увидеть активных подключений к БД. Перезапуск SQL Server (щелкните правой кнопкой мыши и выберите перезагрузка) позволил мне это сделать.
во-первых, я запускаю все соединения указанной базы данных и убиваю их.
затем я установил базу данных в режим single_user
затем, я запускаю восстановление.
убейте соединения снова
и настройка базы данных multi_user.
таким образом, я гарантирую, что нет никаких соединений, удерживающих базу данных перед установкой в одиночный режим, так как первый замерзнет, если есть.
ничего из вышеперечисленного не сработало для меня. Моя база данных не показывала активных соединений с помощью Activity Monitor или sp_who. В конце концов мне пришлось:
- щелкните правой кнопкой мыши узел базы данных
- Выберите "Отсоединить. "
- установите флажок "Drop Connections"
- Reattach
Не самое элегантное решение, но оно работает и не требует перезапуска SQL Server (не вариант для меня, так как сервер БД размещал кучу других базы данных)
Мне нужно быстро (и принудительно) отключить все внешние сеансы, подключающиеся к моей базе данных Oracle, без надзора и администратора.
Я не хочу просто блокировать базу данных и позволять пользователям изящно завершать работу.
Как бы мне это написать?
Я пропускаю сеансы уничтожения, происходящие на сервере базы данных, чтобы избежать отключения соединений Oracle с самим собой.
Брутальный, но элегантный.
Перед сеансами убийства, если возможно, сделайте
чтобы остановить новые сеансы от подключения.
Некоторое время я использовал что-то подобное, чтобы убить свои сеансы на общем сервере. Первую строку "where" можно удалить, чтобы уничтожить все сеансы, отличные от sys:
Если вы хотите запретить новым пользователям подключаться, но разрешить текущим сеансам продолжаться до тех пор, пока они не станут неактивными, вы можете перевести базу данных в режим QUIESCE:
Non-DBA active sessions will continue until they become inactive. An active session is one that is currently inside of a transaction, a query, a fetch, or a PL/SQL statement; or a session that is currently holding any shared resources (for example, enqueues). No inactive sessions are allowed to become active. Once all non-DBA sessions become inactive, the ALTER SYSTEM QUIESCE RESTRICTED statement completes, and the database is in a quiesced state
Я буду иметь это в виду. В моем случае я хотел загрузить пользователей, не дожидаясь завершения их транзакций (некоторые из них довольно длинные). Всем выйти из бассейна СЕЙЧАС .
Important Oracle 11g changes to alter session kill session
Oracle author Mladen Gogala notes that an @ sign is now required to kill a session when using the inst_id column:
Попробуйте запускать при входе в систему
Если вы пытаетесь отключить пользователей, вы не должны позволять им подключаться.
Есть и пример такого триггера.
Это действительно сработало бы, если бы моей целью было ограничить доступ к определенным диапазонам IP-адресов или времени. Моя цель состояла в том, чтобы заставить всех моих пользователей перейти к базе данных, а не предотвращать вход в систему. Но спасибо - буду иметь это в виду.
Чтобы убить отдельные сеансы.
Чтобы ответить на заданный вопрос, вот самый точный SQL для выполнения задания, вы можете объединить его с циклом PL / SQL для фактического запуска операторов kill:
Первое, что нужно знать, это то, что в процессе запуска базы данных Oracle есть 4 состояния.
shutdown (закрыть) -> nomount (запустить экземпляр) -> mount (загрузить базу данных) -> open (открыть базу данных)
1.1 Состояние ВЫКЛЮЧЕНИЯ
Первому состоянию объяснять нечего, все файлы оракула спокойно лежат на диске, все еще не запустилось, относится к состоянию выключения
1.2 Статус NOMOUNT
Выполните действия:
Starting the instance (nomount)
- Reading the initialization file from $ORACLE_HOME/dbs in the following order:
-if not found then, spfile.ora
-if not found then, initSID.ora
Specifying the PFILE parameter with STARTUP overrides the default behavior.
Allocating the SGA
Starting the background processes
Opening the alertSID.log file and the trace files
The database must be named with the DB_NAME parameter either in the initialization Parameter file or in the STARTUP command.
- Прочтите файл параметров (spfile / pfile) в каталоге dbs под переменной окружения
Порядок поиска файлов параметров указан выше, приоритет чтения
Если ни один из трех файлов не найден, запуск завершится ошибкой.
Запустить алгоритм и выделить память
Запустить фоновый процесс
Откройте файл alertSID.log и файл трассировки
Имя базы данных - это либо имя, указанное в файле параметров инициализации, либо имя, указанное в команде запуска. Выберите одно из двух
результат:
Сейчас он находится в номинальном состоянии. Этот режим запуска будет только создавать экземпляр, но не загружать базу данных.Оракул только создает различные структуры памяти и служебные процессы для экземпляра и не открывает никаких файлов данных. В режиме NoMount можно получить доступ только к тем представлениям словаря данных, относящимся к области SGA, включая V$PARAMETER 、 V$SGA 、 V$PROCESS с участием V$SESSION И т.д., информация в этих представлениях получена из области SGA и не имеет ничего общего с базой данных.
(1) Создайте новую базу данных;
(2) Восстановите управляющий файл.
1.3 Статус MOUNT
Выполните действия:
Mounting a database includes the following tasks:
Associating a database with a previously started instance
Locating and opening the control files specified in the parameter file
Reading the control files to obtain the names and status of the data files and online redo log files.However,no checks are performed to verify the existence of the data files and online redo log files at this time.
Свяжите базу данных с запущенным экземпляром
Найдите управляющий файл в файле параметров (spfile / pfile) для чтения
Просмотрите файл параметров:
- Прочтите контрольный файл, полученный файл данных и онлайн-файл журнала повторного выполнения. Однако в настоящее время проверка наличия файла данных и онлайн-файла журнала повторного выполнения не выполняется.
результат:
Теперь мы вошли в состояние монтирования базы данных. Когда мы начнем через монтирование, ниже появится дополнительное предложение с запросом «База данных подключена». База данных готова. В этом режиме запуска будет загружена база данных для экземпляра, но база данных останется закрытой. Поскольку файл управления базой данных должен быть открыт при загрузке базы данных, но ни файл данных, ни файл журнала повторного выполнения не могут быть прочитаны или записаны, пользователь еще не может работать с базой данных. В режиме монтирования доступны только те представления словаря данных, которые относятся к управляющему файлу, включая V$THREAD 、 V$CONTROLFILE 、 V$DATABASE 、 V$DATAFILE с участием V$LOGFILE И так далее, эти представления берутся из контрольного файла.
(1) Переименуйте файл данных;
(2) добавлять, удалять или переименовывать файлы журнала повторного выполнения;
(3) Выполните операцию полного восстановления базы данных;
(4) Измените режим архивирования базы данных.
1.4 Открытое состояние
Выполните действия:
opening the database includes the following tasks
opening the online data log files
opening the onling redo log files
If any of the datafiles or noline redo log files are not present when you attempt to open the database ,the oracle server returns an error.
During this final stage,the oracle server verfies that all the data files and online redo log files can be opened and checks the consistency of the database . If necessary , the SMON background process initiates instance recovery.
Открытие базы данных включает следующие задачи:
Открыть файл онлайн-журнала данных
Открыть онлайн-файл журнала повторов
На этом заключительном этапе сервер проверяет возможность открытия всех файлов данных и файлов оперативных журналов повторного выполнения и проверяет целостность базы данных. При необходимости процесс системного мониторинга запускает восстановление экземпляра.
результат:
В приведенной выше команде, если после запуска не будет добавлена никакая другая информация, система будет запускаться для нас напрямую до открытого состояния.
Назначение режима: разработка и использование приложения.
Используйте роли для назначения разрешений
Используйте пользовательскую систему для назначения разрешений ролям
Используйте роли для назначения разрешений пользователям
with grant option
с опцией предоставления разрешает распространение
Назначить системные разрешения
предоставить пользователю возможность назначать разрешения;
Назначить разрешение на создание сеанса для пользовательского теста
Использовать системного пользователя для выделения свободного места пользователям табличного пространства для тестирования.
Квота используется для выделения свободного места для пользовательского теста. 100 м для пользователей и 20 м для температуры
Назначить все разрешения
Роль расширения-наследования
Роль может наследовать набор разрешений других ролей
Присвоение ролей ролям фактически обеспечивает наследование ролей.
Разрешения, унаследованные от других ролей, не будут отражены в словаре данных, но информацию о наследовании можно получить в представлении dba_role_privs.
Восстановить власть
Поскольку разрешение на выбор распространяется, когда разрешение на выборку пользовательского теста отозвано. Права пользователя test_user также будут восстановлены. Это полностью отличается от системных разрешений, распространяемых опцией администратора
Системные пользователи-system и sys
Роль пользователя sys - это sysdba (администратор базы данных), который является пользователем с самыми высокими полномочиями в базе данных. Роль пользователя системы - sysoper (оператор базы данных), а полномочия уступают только пользователю sys.
Сбросить пароль пользователя
Разрешения делятся на системные разрешения и разрешения объекта
Восстановить системные разрешения пользователя
Например, отозвать разрешение пользовательского теста
В настоящее время у test нет разрешений, но разрешения test_user остаются неизменными, что указывает на разрешения, распространяемые с использованием параметра admin. Не будет признан недействительным при смене полномочий коммуникатора
Назначить разрешения
Назначьте разрешение на выборку таблицы employee для пользовательского теста
Назначить обновление и вставить разрешения
Профиль пользователя в Oracle
В Oracle представление dba_users хранит основную информацию всех пользователей. Просмотр информации о пользователе:
среда SQL Server Management Studio 2005
когда вы щелкните правой кнопкой мыши на базе данных и нажмите кнопку Tasks и нажмите кнопку Detach Database , он вызывает диалог с активными соединениями.
затем вы можете убить эти соединения, не отсоединяя база данных.
Системные разрешения
Системные разрешения - это типы разрешений, встроенных в Oracle, которые не связаны с конкретными объектами. Эти разрешения указывают не на конкретные объекты, а на определенные операции. Например, разрешение на создание таблицы
admin option
Параметр admin может затем распространить полномочия следующему пользователю. Если вы не указали параметр admin при назначении полномочий, полномочия не могут быть переданы следующему пользователю.
Использовать пользовательскую систему, чтобы переназначить разрешения для пользовательского теста и указать параметр администратора
При одновременном назначении нескольких разрешений разделяйте ‘,’ (запятая)
Используйте пользовательский тест для назначения разрешений пользователю test_user
Контроль пользователей, ролей и разрешений в Oracle
Пользователи делятся на два типа: системные пользователи и обычные пользователи
Получить информацию о разрешении системы
Представление dba_sys_privs описывает системные разрешения и распределение разрешений.
Представление system_privilege_map описывает информацию о системных привилегиях Oracle
Отключить / включить роль
Отключить роль пользовательского теста
Включить роль пользовательского теста
role_employee - это роль, принадлежащая пользователю, а set role role_employee используется для установки роли по умолчанию для текущего пользователя.
роль dba: роль администратора базы данных
Роль подключения: создание сеанса, создание таблицы, создание представления и другие разрешения. Эти разрешения находятся внутри собственной схемы пользователя. admin_option нет. Эти разрешения для имен таблиц не могут быть распространены
Роль ресурса: эти разрешения находятся внутри собственной схемы пользователя. admin_option нет. Эти разрешения для имен таблиц не могут распространяться. Эта роль подразумевает другое разрешение - неограниченное табличное пространство. Это разрешение не ограничено ограничением дисковой квоты табличного пространства и может быть произвольно расширено.
Если требования безопасности не слишком высоки, вы можете передать обе роли пользователю
Мне нужно быстро (и принудительно) отключить все внешние сеансы, подключающиеся к моей базе данных oracle без надзора и администратора.
Я не хочу просто заблокировать базу данных и позволить пользователям уйти изящно.
Как бы я это написал?
Я пропускаю сеансы убийства, возникающие на сервере базы данных, чтобы избежать уничтожения соединений Oracle с самим собой.
брутальный, но элегантный.
перед убийством сессий, если это возможно сделать
чтобы остановить подключение новых сеансов.
Я использую что-то вроде этого некоторое время, чтобы убить мои сеансы на общем сервере. Первая строка "где" может быть удалена, чтобы убить все сеансы, отличные от "sys":
Если вы хотите остановить подключение новых пользователей, но разрешить текущие сеансы, пока они не будут неактивны, вы можете поместить базу данных в режим покоя:
не-DBA Активные сеансы будут продолжаться пока они не станут неактивными. Актив сеанс в настоящее время внутри транзакции, запроса, fetch, или оператор PL / SQL; или сессия, которая в настоящее время проведение любого общие ресурсы (например, поставить в очередь.) Нет неактивных сеансов разрешено стать активным. Однажды все не-сеансы DBA становятся неактивными, ALTER SYSTEM QUIESCE RESTRICTED инструкция завершается, и база данных находится в спокойном состоянии
важные изменения Oracle 11g для изменения сеанса kill session
автор Oracle Младен Гогала отмечает, что теперь требуется знак @ убить сеанс при использовании столбца inst_id:
попробуйте триггер при входе в систему
при попытке отключить пользователей вы не должны позволять им подключаться.
есть и пример такого триггера.
чтобы убить отдельные сеансы.
чтобы ответить на вопрос, вот самый точный SQL для выполнения задания, вы можете объединить его с циклом PL/SQL, чтобы фактически запустить операторы kill:
если Oracle работает в Unix / Linux, то мы можем grep для всех клиентских подключений и убить его
grep весь процесс клиента oracle:
ПС-эф | грэп местные=нет | команда grep -v с помощью команды grep | у awk '' | туалет -л
мой SQL Server 2005 не восстанавливает резервную копию из-за активных соединений. Как я могу заставить его?
Объектные разрешения
Объектные разрешения в основном включают в себя:
Просмотр разрешений пользователя для таблицы данных через представление user_tab_privs или dba_tab_privs
Создать новых пользователей с системными пользователями
Определяемая опция обязательна и указывает пароль нового пользователя
Читайте также: