Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да създадете потребител в Oracle и да зададете привилегии

Ще публикуваме информация за потребителския достъп и сигурността в базата данни на oracle. Тази публикация ще даде добра информация за Създаване на потребител в Oracle, системни привилегии и права на Oracle Object, как да предоставим привилегиите на потребителите, как да покажа всички привилегии от потребител в oracle

Изявление CREATE USER

Използва се за създаване на потребител (схема).

Удостоверяването по подразбиране за нов потребител е базата данни. На потребителя се задава парола и паролата се съхранява криптирана в базата данни. Възможни са два други типа удостоверяване, първият е външно удостоверяване с използване на ниво операционна система. Външното удостоверяване проверява паролата на ниво операционна система.

Другият е глобално удостоверяване, което проверява потребителската парола в услугата за сигурност на Oracle или друга услуга за директории на трета страна.

Присвояване на атрибути

Можем да променим потребителските атрибути с помощта на ALTER USER. Можем да ги променим или да ги присвоим

Създаване на потребителско изявление с определени атрибути ще бъде

CREATE USER SCOTT
IDENTIFIED BY TTOC
DEFAULT TABLESPACE USERS
QUOTA 10M ON USERS
TEMPORARY TABLESPACE temp
QUOTA 5M ON system
PROFILE application_user
PASSWORD EXPIRE

Системни права на Oracle

Тя позволява на грантополучателя да създава, променя, пуска и управлява обекти от база данни. Например, привилегиите за създаване на пространства за таблици и за изтриване на редовете на която и да е таблица в база данни са системни привилегии.

Oracle има повече от 100 системни привилегии (намерени в таблицата SYSTEM_PRIVILEGE_MAP).

Има 2 специални привилегии в база данни на Oracle, наречена SYSDBA и SYSOPER. И двете привилегии позволяват операции с база данни като STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG и RECOVER. SYSDBA позволява командата CREATE DATABASE и опциите CHANGE CHARACTER SET.

Системните привилегии се предоставят от администратора на базата данни на потребителите чрез командата grant и се отменят чрез командата revoke

Ако DBA трябва да предостави системни привилегии на някого, така че друг човек също може да го предостави, тогава трябва да се даде с опция за администратор

GRANT create session TO user;
GRANT create session TO user with admin option;
Revoke create session from user;

Системни права на потребителя

Когато потребителят е създаден, обикновено предоставяме следните системни привилегии

  • СЪЗДАВАНЕ НА СЕСИЯ
  • СЪЗДАВАНЕ НА ТАБЛИЦА
  • СЪЗДАВАНЕ НА ИЗГЛЕД
  • СЪЗДАВАНЕ НА ПОСЛЕДОВАТЕЛНОСТ
  • СЪЗДАВАНЕ НА ПРОЦЕДУРА

С този потребител може да започне да създава таблицата и други обекти.

Sample
CREATE USER "TEST" IDENTIFIED BY TEST
DEFAULT TABLESPACE "TOOLS"
TEMPORARY TABLESPACE "TEMP";
grant CREATE TRIGGER to TEST;
grant CREATE PROCEDURE to TEST;
grant CREATE SESSION to TEST;
grant CREATE TYPE to TEST;
grant CREATE TABLE to TEST;
grant CREATE VIEW to TEST;
grant ALTER SESSION to TEST;
grant CREATE SEQUENCE to TEST;
grant CREATE SYNONYM to TEST;
grant CREATE ANY SYNONYM to TEST;
grant UNLIMITED TABLESPACE to TEST;

Привилегии на Oracle Object

Те се предоставят на обекти на база данни (като таблица, изглед, процедура и т.н....)

Собственикът има всички привилегии и собственикът може да даде конкретни привилегии върху обектите

Собственикът може да предостави привилегиите, като използва командата по-долу

GRANT privileges ON object TO user;

Привилегиите могат да бъдат избиране, вмъкване, актуализиране, изтриване или ВСИЧКИ

Ако собственикът иска да предостави привилегия на всички потребители

GRANT privileges ON object TO public;

Ако собственикът иска да предостави привилегия на потребителя с опция за предоставяне. По принцип това означава, че получателят може допълнително да възлага тази привилегия на други

GRANT privileges ON object TO user with grant option;

По същия начин имаме командата revoke за премахване на привилегиите от обектите

Какво е ролята на оракул?

Ролята е обект на база данни, използван за налагане на привилегии. На потребител може да бъде присвоена роля, за да зададе привилегии върху обекти на база данни:

GRANT EBS_ADMIN TO SCOTT;

Той ще предостави ролята EBS_ADMIN с всичките й привилегии на потребителя SCOTT.

Създаване и използване на роли

Командата CREATE ROLE [IDENTIFIED BY ] създава роля. Присвояването на привилегии на ролята се извършва с помощта на командата GRANT. Отмяната на привилегии се извършва с помощта на REVOKE ОТ РОЛЯ.

Каква е разликата между системните и обектните привилегии?

Таблици и изгледи на речника с данни

Oracle предостави изгледи на речник с данни, за да получите информация за привилегиите

Има три категории изгледи

Проверка на изгледи за привилегии

Полезни заявки за привилегиите

как да проверите привилегиите на потребителя в oracle

col role for a16
col pv for a75 hea 'PRIVILEGE OR ROLE'
break on role on type skip 1
define usercheck = 'SH'
select grantee, 'ROL' type, granted_role pv
from dba_role_privs where grantee = '&usercheck' union
select grantee, 'PRV' type, privilege pv
from dba_sys_privs where grantee = '&usercheck' union
select grantee, 'OBJ' type,
max(decode(privilege,'WRITE','WRITE,'))||max(decode(privilege,'READ','READ'))||
max(decode(privilege,'EXECUTE','EXECUTE'))||max(decode
(privilege,'SELECT','SELECT'))||
max(decode(privilege,'DELETE',',DELETE'))||max(decode
(privilege,'UPDATE',',UPDATE'))||
max(decode(privilege,'INSERT',',INSERT'))||' ON '||object_type||'
"'||a.owner||'.'||table_name||'"' pv
from dba_tab_privs a, dba_objects b
where a.owner=b.owner and a.table_name = b.object_name and
a.grantee='&usercheck'
group by a.owner,table_name,object_type,grantee union
select username grantee, '---' type, 'empty user ---' pv from dba_users
where not username in (select distinct grantee from dba_role_privs) and
not username in (select distinct grantee from dba_sys_privs) and
not username in (select distinct grantee from dba_tab_privs) and username like
'%&usercheck%'
group by username
order by grantee, type, pv;

Определете системните привилегии, дадени на потребителя

SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS  
WHERE GRANTEE = 'USER';

Проверка кои привилегии за таблица са предоставени от вас на други потребители.

SELECT * FROM USER_TAB_PRIVS_MADE

Проверка кои привилегии за таблица са ви предоставени от други потребители

SELECT * FROM USER_TAB_PRIVS_RECD;

Проверка кои привилегии на ниво колона са предоставени от вас на други потребители.

SELECT * FROM USER_COL_PRIVS_MADE;


Проверка  кои привилегии на ниво колона са ви предоставени от други потребители

SELECT * FROM USER_COL_PRIVS_RECD;


Проверка кои привилегии са предоставени на ролите

SELECT * FROM USER_ROLE_PRIVS;

Как да предоставяте и отменяте привилегии  в Oracle

Objects grant/revoke from user  
grant select on dept to public;
revoke select  on dept  from public;
Objects grant/revoke from Role
grant delete on dept to dept_role;
revoke update on dept from dept_role;

Сродни връзки

Управление на потребителски привилегии и роли:Документация на Oracle за допълнителна справка
Изгледи на Oracle:Пълно ръководство за това как да създадете изглед на oracle, да премахнете изгледите на oracle, да промените изгледите на oracle, как да определите заявката на вече създадения изглед
създайте таблица в Oracle :Таблиците са основната единица за съхранение на данни в базата данни на Oracle. ние разглеждаме как да използваме командата за създаване на таблица на Oracle за създаване на таблица с външен ключ /първичен ключ
Последователности в oracle :Какво е последователност в oracle, описание на всички опции, как да ги създадете, Oracle 12c нова функция на последователности , Как да ги премахнете и промените
създайте потребител в oracle 12c :Разберете как да създадете общ потребител в oracle 12c, да създадете общи и локални потребители, да създадете обща роля и локална роля и как да ги управлявате

Надяваме се да ви хареса публикацията. Моля, предоставете обратната връзка

Препоръчани курсове

Ето хубавия курс на Udemy за Oracle SQL
Oracle-Sql-Step-by-step :Този курс обхваща основния sql, присъединяването, Създаването на таблици и промяната на структурата им, Създаване на изглед, Обединение, Обединение - всичко и много други неща . Страхотен курс и задължителен курс за SQL начинаещи
Пълният курс за сертифициране на Oracle SQL :Това е добър курс за всеки, който иска да бъде готов за работа за SQL разработчици. Приятно обяснен курс
Oracle SQL Developer:Основни неща, съвети и трикове :Инструментът за разработчици на Oracle Sql се използва от много разработчици. Този курс ни дава трикове и уроци как да го използваме ефективно и да станем продуктивен sql разработчик
Мастърклас за настройка на производителността на Oracle 2020 г. :Настройката на производителността е едно от критичните и най-търсените умения. Това е добър курс, за да научите за него и да започнете да правите настройка на производителността на sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Икони за разработчици на SQL

  2. Как да използвате URL адрес на Google Translate в Oracle plsql

  3. Създаване на sha1-хеш на ред в Oracle

  4. Oracle 11g - Проверете ограничението с RegEx

  5. Преброяване на броя на поява на символ в Oracle SQL