Различие между «SYSDBA», «SYSOPER» и «DBA» в базе данных Oracle
Начинающий разработчики часто путают SYSDBA и DBA между собой. Поэтому столь необходимо осветить различие между ними. Вкратце, SYSDBA – это системная привилегия, а DBA – это роль.
SYSDBA и SYSOPER – это специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка истанса; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA или SYSOPER.
Обзор возможностей каждой из привилегий:
SYSDBA:
Схема по умолчанию для SYSDBA: SYS
Схема по умолчанию для SYSOPER: PUBLIC
Выборка пользователей, которые имеют SYSDBA или SYSOPER привилегии:
Выборка всех ролей с базы данных:
Выборка всех пользователей, которым назначена DBA роль:
SQL>select * from dba_role_privs where granted_role = ‘DBA’
Замечание: вы не можете назначить привелегию SYSDBA для роли. Это приводит к ошибке:
Для пользователя базы данных могут быть назначены роль DBA и привилегия SYSDBA:
Литература: Oracle® Database Administrator's Guide
SYSDBA и SYSOPER – это специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка истанса; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA или SYSOPER.
О системной привилегии SYSDBA
Привилегии SYSDBA и SYSOPER позволяют получать доступ к базе данных, даже если база не открыта. Контроль этих привилегий находится за пределами компетенции самой базы данных. SYSDBA и SYSOPER могут также быть расценены как тип подключения, который позволяет выполнять определённые операции для которых привилегии не могут быть назначены другим способом.Обзор возможностей каждой из привилегий:
SYSDBA:
- Выполнять STARTUP и SHUTDOWN операции
- ALTER DATABASE: open, mount, back up, or change character set
- CREATE DATABASE
- DROP DATABASE
- CREATE SPFILE
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER
- Включает привилегию RESTRICTED SESSION
- ALTER DATABASE RECOVER
- Позволяет подключаться как пользователь SYS
- Выполнять STARTUP и SHUTDOWN операции
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Только полное восстановление. Другие формы восстановления, такие как UNTIL TIME|CHANGE|CANCEL|CONTROLFILE требуют SYSDBA.)
- Включает привелегию RESTRICTED SESSION
- Позволяет выполнять базовые операции, но без возможности просмотра данных пользователя
Схема по умолчанию для SYSDBA: SYS
Схема по умолчанию для SYSOPER: PUBLIC
Выборка пользователей, которые имеют SYSDBA или SYSOPER привилегии:
SQL>column sysdba format a10
SQL>column sysdba format a10
SQL>select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER
———- ——– ———-
SYS TRUE TRUE
SCOTT TRUE FALSE
О DBA роли
Роль DBA – это предопределённая роль, которая автоматически создаётся для каждой базы данных Oracle. Эта роль содержит все системные привилегии, кроме SYSDBA и SYSOPER. Поэтому она очень мощная и должна назначаться только администраторам, которым требуется полный доступ.Выборка всех ролей с базы данных:
SQL> select role from dba_roles;
ROLE
———–
CONNECT
RESOURCE
DBA
…..
Выборка всех пользователей, которым назначена DBA роль:
SQL>select * from dba_role_privs where granted_role = ‘DBA’
GRANTEE GRANTED_ROLE ADM DEF
———– ——————- —– ——
SYS DBA YES YES
SYSMAN DBA NO YES
LETS DBA NO YES
SYSTEM DBA YES YES
Замечание: вы не можете назначить привелегию SYSDBA для роли. Это приводит к ошибке:
ORA-01931: cannot grant SYSDBA to a role
Для пользователя базы данных могут быть назначены роль DBA и привилегия SYSDBA:
SQL> select * from dba_role_privs where granted_role = ‘DBA’
GRANTEE GRANTED_ROLE ADM DEF
———- ——————- —— —–
SYS DBA YES YES
SCOTT DBA NO YES
SYSMAN DBA NO YES
LETS DBA NO YES
SYSTEM DBA YES YES
Литература: Oracle® Database Administrator's Guide
0 комментариев