Какие роли и привилегии дать пользователю для выполнения CRUD (в Oracle 12) - PullRequest
0 голосов
/ 03 февраля 2019

Я создаю USER в Oracle 12 c , используя TOAD .

После создания TABLESPACE , я создаю USER .Меня немного смущает множество ROLES и PRIVILEGES , которые могут быть предоставлены пользователю.

Каковы минимальные / стандартные роли и привилегии, которые пользователь долженбыть дано для выполнения операции CRUD и возможности «редактировать» базу данных (создать или удалить таблицу, DROP схемы ecc) из TOAD?

Спасибо

Ответы [ 3 ]

0 голосов
/ 03 февраля 2019

Это зависит от того, какие операции вы собираетесь выполнять.Если вы хотите работать только с таблицами в собственной схеме БД, для запуска обычно достаточно следующих прав:

grant create session to <your_user>;
grant create table to <your_user>;

У вас есть права по умолчанию для вставки / обновления / удаления / выбора таблиц, которыми вы владеете.

Квота табличного пространства:

alter user <your_user> quota unlimited on <your_tablespace_name>;

Лучше установить табличное пространство по умолчанию для пользователя.В этом случае вы можете опустить имя табличного пространства в операторе создания таблицы.

alter user <your_user> default tablespace <your_tablespace_name>;
0 голосов
/ 03 февраля 2019

Вот предложение, которому вы можете (или не можете) следовать.

Как привилегированный пользователь (например, SYS), проверьте табличные пространства, доступные в вашей базе данных.Я использую 11g XE (Express Edition), который показывает следующее:

SQL> show user
USER is "SYS"
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1        
TEMP            --> temporary
USERS           --> my data

Теперь создайте пользователя:

SQL> create user mdp identified by pdm
  2  default tablespace users
  3  temporary tablespace temp
  4  quota unlimited on users;

User created.

Давным-давно было два популярных предопределенныхроли с именами CONNECT и RESOURCE, которым были предоставлены некоторые из наиболее распространенных привилегий, поэтому люди просто любили предоставлять эти роли вновь созданным пользователям.

В настоящее время вам не следует делать это: grantтолько минимальный набор привилегий, которые могут понадобиться вашему пользователю.Первый - CREATE SESSION;без этого ваш пользователь даже не сможет установить соединение.

SQL> grant create session to mdp;

Grant succeeded.

Затем вы захотите создать несколько таблиц, так что - предоставьте это:

SQL> grant create table to mdp;

Grant succeeded.

ОК, давайте подключимся как новый пользователь и сделаем что-то :

SQL> connect mdp/pdm@xe
Connected.
SQL> create table test (id number);

Table created.

SQL> insert into test id values (1);

1 row created.

SQL> drop table test;

Table dropped.

SQL>

Ницца;Я могу создавать таблицы, вставлять / обновлять / удалять / выбирать из них.Для начала этого вполне достаточно.Однако, когда выясняется, что вы хотите, например, создать представление, оно не будет работать, пока вы не предоставите ему эту привилегию:

SQL> create view v_dual as select * From dual;
create view v_dual as select * From dual
            *
ERROR at line 1:
ORA-01031: insufficient privileges


SQL> connect sys@xe as sysdba
Enter password:
Connected.
SQL> grant create view to mdp;

Grant succeeded.

SQL> connect mdp/pdm@xe
Connected.
SQL> create view v_dual as select * From dual;

View created.

SQL>

и т. Д .;ничего не дарите только потому, что оно может вам понадобиться - дайте это , если и когда вам это нужно.Особенно обращайте внимание на системные привилегии, которые могут быть опасны, если вы не знаете, что делаете.

0 голосов
/ 03 февраля 2019

Ссылка на документацию - привилегии


Предоставьте пользователю следующие привилегии:

  • CREATE SESSION (для того, чтобы разрешить пользователюдля подключения к базе данных)
  • INSERT
  • ОБНОВЛЕНИЕ
  • УДАЛИТЬ
  • ВЫБРАТЬ

Используйте приведенную ниже командучтобы предоставить привилегии пользователю (необходимо войти в систему как SYS или SYSTEM или другой пользователь с привилегией GRANT):

GRANT CREATE SESSION, SELECT, UPDATE, DETETE, INSERT TO user_name
...