Oracle19 c - Создать роль пользователя в табличном пространстве - PullRequest
0 голосов
/ 26 мая 2020

Здравствуйте. Как я могу создать роли с

ReadOnly(Select any Tables under the tablespace)

и

InsertUpdateRoleOnly(To insert and update Data ,not delete)

В моем табличном пространстве с локальным доступом для этих пользователей?

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Таблицы принадлежат кому-то . Владелец предоставляет привилегии другим пользователям или ролям; в вашем случае это будет роль. Поскольку роль не зависит от табличного пространства (вы упомянули), вы должны создать его так же просто, как

create role r_read_only;

. Затем владелец предоставит привилегию SELECT на его таблицы для этой роли, например,

grant select on emp  to r_read_only;
grant select on dept to r_read_only;

Такая роль будет предоставлена ​​другим пользователям, например

grant r_read_only to littlefoot;

, и пользователь littlefoot сможет выбирать из этих таблиц.


То же самое и с другой вашей ролью, без разницы:

create role r_upd_ins;
grant insert, update on emp to r_upd_ins;
grant r_upd_ins to bigfoot;
0 голосов
/ 26 мая 2020

Привилегии не могут быть предоставлены на уровне табличного пространства. Вы должны предоставить привилегии для указания c таблиц. например:

create role read_data_role;
grant select on [owner].[table_name] to read_data_role;

create role update_data_role;
grant insert, update on [owner].[table_name] to update_data_role;

grant read_data_role, update_data_role to [username];
...