2

私はDBMSが提供するセキュリティを分析しようとしています。次のシナリオは、私が探しているものの簡単な説明を提供します。

//データベースに接続している現在のユーザーは「マスター」です

//1.新しいユーザーを作成するための基本的な手順

CREATE USER slave
IDENTIFIED BY SlavePassword
DEFAULT TABLESPACE SomeTablespace;

//2.新しいユーザーに基本的な役割を付与します

GRANT CONNECT TO slave;
GRANT RESOURCE TO slave;

//3.新しいユーザー「slave」がデータベースに接続されました

//ユーザー"slave"は、データベースオブジェクト(テーブル、プロシージャなど)を作成し、システムの他のユーザーから特権を付与します

作成者「マスター」が、「スレーブ」ユーザーからの明示的な許可なしに、作成されたユーザー「スレーブ」が持つ、または将来持つであろう特権を取得できるようにするにはどうすればよいですか?

スレーブが他のユーザーに自分の特権を付与できることは知っていますが、他のユーザーが「スレーブ」が持つ将来の特権を取得できるようにする特別な特権はありますか?

私はOracleを使用していますが、他のDBMSがこのシナリオを許可しているかどうかはわかりません。

4

4 に答える 4

3

DatabaseVaultを使用してこれを行う唯一の方法。「スレーブ」ユーザーのレルムを作成し、そのレルムに「マスター」ユーザーを追加すると、マスターユーザーはそのスキーマ内のすべてのオブジェクトに対するアクセス許可を持ちます。OTNからのこのチュートリアル

http://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:4544,29

レルムの作成について説明します。レルム参加者として「マスター」を追加するという追加の手順を実行するだけです。

于 2013-01-06T14:48:37.987 に答える
1

プロキシユーザーでこれを行うことができる場合があります。

これにより、MASTERはSLAVEのオブジェクトを見ることができます。ただし、MASTERがSLAVEとして接続すると、MASTERオブジェクトを表示できなくなります。

--Create master user
create user master identified by master;
grant connect, create table to master;

--Create slave user, and grant proxy to master
create user slave identified by slave;
grant connect, create table to slave;
alter user slave grant connect through master;

--Connect as master, create a table
sqlplus master/master@orcl2
create table master_table(a number);
exit;

--Connect as slave, create a table
sqlplus slave/slave@orcl2
create table slave_table(a number);
exit;

--Connect as master, but pretending to be slave
sqlplus master[slave]/master@orcl2

--You can see the slave tables 
select * from slave_table;
    no rows selected

--But you cannot see the master tables
select * from master.master_table;
    ERROR at line 1:
    ORA-00942: table or view does not exist              *
于 2013-01-06T18:22:50.970 に答える
1

Oracleアカウントモデルは、あなたが説明した方法では機能しません. ユーザーを作成するユーザーには、そのユーザーが作成するオブジェクトに対する特別な権限はありません。すべてのユーザーは解放された状態で生まれます

オブジェクト権限には次の 2 つのレベルしかありません。

  • 個々のスキーマ内の特定のオブジェクトに対して付与される権限
  • ANY 権限によって取得される、すべてのスキーマ内の特定のタイプのすべてのオブジェクトに対して付与される権限。

最初のレベルは、SLAVE がそのオブジェクトに対する権限を MASTER に付与するメカニズムです。第 2 レベルは、SYS などの Oracle DBMS アカウントを含む、すべてのユーザーが所有するすべてのオブジェクトに適用されるため、非常に強力です。したがって、DBA ユーザーのみが ANY レベルの権限を持つのが普通です。

このような状況の理由は、Oracle がデータと機能へのアクセスを制御するためのメカニズムとしてユーザーとスキーマを採用しているためです。別のユーザーによって完全に所有されているユーザーは、そのコンテキストでは意味がありません。

于 2013-01-06T00:47:23.933 に答える
0

ここでのリクエストがよくわかりません...「マスター」ユーザーに「スレーブ」オブジェクトに自動的にアクセスさせたい場合は、マスターにdbaを付与することでこれを行うことができます

grant dba to master;

何か他のことを意図している場合は、質問を明確にして、役立つように詳細を記入してください。

于 2013-01-05T21:31:18.677 に答える