2015-02-21 5 views
1

Я новичок в базах данных. Вот я вошел в учетной записи пользователя: СистемаПривилегии гранта в Oracle 10g

затем создать новый Радж пользователя с помощью следующей команды

create user raj identified by raj 

Тогда я подключен к пользовательскому Раджу, используя следующую команду

grant connect to raj 

Здесь Я предоставляю привилегии на столе client_master до raj

grant all on client_master to raj 

Сейчас я wan t, чтобы выбрать содержимое таблицы client_master

select * from raj.client_master 

, но он дает ошибку, что такой таблицы не существует.

+3

«grant connect» не «подключается к пользователю», он просто дает пользователю _right_ для подключения к базе данных.Вам нужно войти в систему как «raj» и запустить что-то вроде 'create table client_master (...)' как пользователь 'raj', иначе такой таблицы не будет. Но 'raj' также нуждается в' create table'privilege для этого, только с привилегией 'connect' недостаточно –

+0

, но как тогда один пользователь может предоставить привилегии ro другой? – Navdeep

ответ

-1

Попробуйте выполнить следующую команду -

GRANT EXECUTE ON Find_Value Смиту;

Это может помочь вам решить вашу проблему.

0

Быстрый поиск по Google, и вы узнаете, что выбор справа так же просто, как . Выберите.

grant select on client_master to raj; 

Однако, это не является реальной проблемой, так как при выполнении этой команды grant all on client_master to raj привилегия выберите уже включен.

Так вот возможности, почему вы получите эту ошибку:

  • таблица не существует (вам нужно создать).
  • Это еще одна схема, и вы не указали ее.
  • Вы сделали опечатку при написании client_master.

Я предполагаю, что вы создали таблицу в схеме sys (что действительно плохой идеей btw), поэтому проблема в том, что проблема 2 в том, что я перечислял.

Попробуйте

select * from sys.client_master; 

Обратите внимание, что если вы не хотите, чтобы всегда указывать префикс, вы можете создать синоним.

create synonym raj.client_master for sys.client_master; 

Тогда

select * from client_master; 

будет работать.