Я использую Oracle 11g (11.2.0.1.0). Я создал около 20 табличных пространств и пользователей. И данные поступили из [Инструменты] - [Копирование базы данных] в Oracle SQL Developer.
Каким-то образом я обнаружил, что пользователь использует SELECT
запрос к таблице из другой схемы. Я хочу предотвратить это для безопасности. Как мне изменить параметры моего гранта?
Я прочитал «Руководство по безопасности баз данных Oracle 11g, выпуск 2 (11.2)», но не смог найти четкое решение.
Вот мои запросы на создание и предоставление.
create user [USER_NAME]
identified by [PASSWORD]
default tablespace [TABLESPACE_NAME]
temporary tablespace TEMP;
grant create session,
create database link,
create materialized view,
create procedure,
create public synonym,
create role,
create sequence,
create synonym,
create table,
drop any table,
create trigger,
create type,
create view to [USER_NAME];
alter user [USER_NAME] quota unlimited on [TABLESPACE_NAME];
А вот SELECT
результат session_privs для пользователя.
SQL> SELECT * FROM session_privs;
PRIVILEGE
--------------------------------------------------------------------------------
CREATE SESSION
CREATE TABLE
DROP ANY TABLE
CREATE SYNONYM
CREATE PUBLIC SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE LINK
CREATE ROLE
CREATE PROCEDURE
CREATE TRIGGER
PRIVILEGE
--------------------------------------------------------------------------------
CREATE MATERIALIZED VIEW
CREATE TYPE
13 rows selected.
Я хочу запретить пользователю запрашивать SELECT
в других схемах.
Например, следующий запрос
-- connected with USER1
SELECT *
FROM USER2.table1;
должен сделать ошибку вроде:
ERROR: USER1 doesn't have SELECT privilege on USER2.
Отредактировано:
- Используйте соответствующие термины (некоторые слова изменены с
tablespace
на schema
)
- Добавить
SELECT
результат session_privs для пользователя
- Добавьте метод получения данных.