SQL Oracle Developerの権限、権限に混乱しています。作成されたユーザーは、すべてのスキーマ/ユーザーのテーブルにアクセスできます。データベース内の特定のユーザーが自分のテーブルにのみアクセスするように制限したい(ALTER、DROP、UPDATEなど)。誰かが私にこのタスクを実行する方法を指定できますか?
つまり、ユーザーが自分のテーブルにのみアクセスするためのシステム特権から選択する特権を意味します。ありがとうございました
SQL Oracle Developerの権限、権限に混乱しています。作成されたユーザーは、すべてのスキーマ/ユーザーのテーブルにアクセスできます。データベース内の特定のユーザーが自分のテーブルにのみアクセスするように制限したい(ALTER、DROP、UPDATEなど)。誰かが私にこのタスクを実行する方法を指定できますか?
つまり、ユーザーが自分のテーブルにのみアクセスするためのシステム特権から選択する特権を意味します。ありがとうございました
ユーザーは、次の場合にのみ、スキーマ外のテーブルに対する権限を持ちます。
ユーザーにシステムレベルの特権(つまりSELECT ANY TABLE
)が付与されている場合は、システムレベルの特権を取り消すことができます。ユーザーに各テーブルに対する明示的な特権が付与されている場合は、各テーブルに対する特権を取り消す必要があります。
私の推測では、ユーザーにDBA
は1つ以上のANY
システム特権を含む役割(場合によっては役割)が付与されています。その場合は、ユーザーからロールを取り消すか、ロールから特権を取り消す必要があります。
ユーザーにはどのような役割が付与されますか?
SELECT granted_role
FROM dba_role_privs
WHERE grantee = <<the user name>>
ユーザーにはどのようなシステム権限が付与されますか?
SELECT privilege
FROM dba_sys_privs
WHERE grantee = <<the user name>>
ユーザーに付与されるロールにはどのようなシステム権限が付与されますか?
SELECT *
FROM dba_sys_privs
WHERE grantee IN (SELECT granted_role
FROM dba_role_privs
WHERE grantee = <<the user name>>)