2015-12-08 2 views
0

Я изучаю оракул и PL/SQL. Я создал базу данных под названием «PRACTICE» и создал пользователя под названием «MITHRA», подключив его как SYS.Предоставить привилегии конкретной базе данных для пользователя

Мой вопрос: я хочу предоставить привилегии пользователю «MITHRA» для конкретной базы данных «ПРАКТИКА». Пользователь «MITHRA» может выполнять все действия, такие как создание, падение, изменение и т. Д. Только в базе данных «PRACTICE».

Просьба предложить мне, как это сделать.

+0

Что значит, что вы создали базу данных под названием «PRACTICE»? Не похоже, что вы используете «базу данных» в смысле слова Oracle. Возможно, вы создали схему под названием «PRACTICE»? Или, может быть, вы используете 12,1, несмотря на свой тег 11g, и вы имеете в виду, что вы создали CDB в PDB? –

+0

Вы уверены, что имеете в виду базу данных, а не схему? –

+0

Прошу прощения, я не знаю, что именно в смысле оракула, потому что я только начал изучать оракул. Но, более конкретно, я создал (схему/базу данных), используя команду «create database PRACTICE». У пользователя sys будут все привилегии, но я создал другого пользователя «MITHRA», и я хочу предоставить привилегии этому пользователю только для PRACTICE базы данных/схемы. – Nagendra

ответ

1

Oracle может размещать только одну базу данных, поэтому то, что вы просите, по существу предоставит пользователю права root, включая базу данных пересылки. Это следует избегать при производстве по очевидным причинам.

Так что для того, чтобы предоставить полный доступ к пользователю mithra:

Connect как SYS и выполните следующую команду -

Grant dba to mithra; 

Это должно дать пользователю Митре все возможные привилегии для этой базы данных. Вы также можете использовать команду grant для предоставления каких-либо отдельных привилегий.

+1

Почему 'dba'? Почему бы не «все привилегии»? Или, почему бы и нет. OP хочет ограничить пользователя подключением к другим базам данных. Как предоставление привилегии 'dba' отвечает на вопрос OP? –

+0

OP хочет разрешить пользователю выполнять все действия, роль DBA - это самый быстрый способ достичь этого. Кроме того, роль DBA в Oracle является специфичной для базы данных и поэтому не позволит выполнять какие-либо операции с другими базами данных. В чем разница между ролью DBA и предоставлением всех привилегий? –

+0

"* и поэтому не допускает каких-либо операций с другими базами данных *« Предоставление привилегий не имеет ничего общего с прекращением подключения пользователя к другой базе данных. Все гранты ограничены экземпляром, а не другими экземплярами. –

0

Просто, чтобы быть уверенным, что мы говорим на тех же условиях. Является ли база данных или схема "PRACTICE"? Если это DATABASE, вы должны предоставить DBA, если это схема, тогда у Oracle нет операторов для предоставления прав на схемы (только системные и объектные привилегии). Чтение вашего вопроса заставляет меня думать, что вы пришли из MSSQL, где вы можете предоставить конкретному пользователю gratns для конкретной базы данных, в Oracle это немного другое - сделать аналогию - у вас нет баз данных, кроме схем.

+0

Прошу прощения, я не знаю, что именно в смысле оракула, потому что я только начал изучать оракул. Но, более конкретно, я создал (схему/базу данных), используя команду «create database PRACTICE». У пользователя sys будут все привилегии, но я создал другого пользователя «MITHRA», и я хочу предоставить привилегии этому пользователю только для PRACTICE базы данных/схемы. – Nagendra

+0

Какую версию DB вы используете? Если это 12, вы должны «предоставить sysdba mitra». Не уверены в предыдущих версиях, но я думаю, что Oracle 11 также имеет привилегию «sysdba», если нет, у вас будет грант DBA, –

 Смежные вопросы

  • Нет связанных вопросов^_^