ホームページ >データベース >Oracle >Oracle ユーザーのクエリ権限

Oracle ユーザーのクエリ権限

WBOY
WBOYオリジナル
2023-05-08 11:14:373915ブラウズ

Oracle データベースは、業界をリードするリレーショナル データベース管理システムであり、セキュリティ、安定性、高い信頼性、優れた拡張性の特徴を備えており、企業のデータ ストレージと管理に広く使用されています。大規模なデータベース システムでは、ユーザーとユーザー権限の管理が特に重要です。この記事では、データベース システムをより深く理解し、適用するために、Oracle ユーザーのクエリ権限に関する関連知識に焦点を当てます。

1. ユーザーと権限の概念

ユーザーとは、Oracle データベースに接続されているアカウントまたはセッションを指します。ユーザー アカウントは通常、ユーザー名とパスワードによって認証され、データベース内で一連の操作を実行するためのアクセス許可が付与されます。

権限とは、ユーザー アカウントが特定の操作を実行したり、データベース内の特定のオブジェクトを使用したりできる権限を指します。 Oracle データベースでは、権限はシステム権限とオブジェクト権限の 2 種類に分類されます。

システム権限とは、CREATE TABLE、CREATE USER などのデータベース システム レベルの権限を指します。通常、このような権限を持つのはデータベース管理者だけです。

オブジェクト権限とは、SELECT、INSERT、UPDATE、DELETE などのデータベース オブジェクト (テーブル、ビュー、ストアド プロシージャなど) を操作するためのユーザーの権限を指します。通常、オブジェクトの所有者または管理者によって付与されます。

2. ユーザー権限のクエリ

Oracle では、次に示すように、ユーザーと権限を表示するための複数のコマンドが提供されています:

  1. システム権限とオブジェクト権限のクエリ

次の SQL ステートメントを使用して、現在のユーザーのシステム権限とオブジェクト権限を表示します。

SELECT * FROM USER_SYS_PRIVS;--查询系统级权限
SELECT * FROM USER_TAB_PRIVS;--查询表级权限
SELECT * FROM USER_COL_PRIVS;--查询列级权限

その中で、USER_SYS_PRIVS テーブルにはユーザーが所有するシステム権限がリストされ、USER_TAB_PRIVS テーブルにはUSER_COL_PRIVS テーブルにそれらがそれぞれリストされています。テーブルと列に対するユーザーの権限は削除されています。

  1. 指定したユーザーの権限をクエリする

他のユーザーの権限については、次の SQL ステートメントを使用してクエリできます:

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='username';--查询系统级权限
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE='username';--查询表级权限
SELECT * FROM DBA_COL_PRIVS WHERE GRANTEE='username';--查询列级权限

Among DBA_SYS_PRIVS はシステム レベルの権限を表し、 DBA_TAB_PRIVS は表レベルの権限を表し、 DBA_COL_PRIVS は列レベルの権限を表します。 GRANTEE パラメータはユーザー名を指定します。

3. ユーザー権限の付与と取り消し

ユーザー権限の付与と取り消しは、データベース ユーザーを管理するための中心的な操作の 1 つです。 Oracle では、この機能を実装するために、GRANT と REVOKE という 2 つのコマンドが提供されています。

  1. GRANT コマンド

GRANT コマンドは、ユーザー権限を付与するために使用されます。 GRANT コマンドの構文は次のとおりです。

GRANT privilege [ON object] TO user;

このうち、privilege は付与する権限を指定し、ON object は認可するオブジェクト (テーブル、ビューなど) を指定します。 ON オブジェクトが指定されていない場合、システムレベルの権限が付与されます。

次に、承認の例をいくつか示します。

GRANT SELECT ON employees TO user1; --授予user1对employees表的SELECT权限
GRANT UPDATE(emp_name) ON employees TO user2; --授予user2对employees表的emp_name字段的UPDATE权限
GRANT CREATE SESSION TO user3; --授予user3创建会话的权限
  1. REVOKE コマンド

REVOKE コマンドは、ユーザーのアクセス許可を取り消すために使用されます。 REVOKE コマンドの構文は次のとおりです。

REVOKE privilege [ON object] FROM user;

このうち、特権は取り消す権限を指定し、ON オブジェクトは取り消すオブジェクト (テーブル、ビューなど) を指定します。 ON オブジェクトが指定されていない場合は、システムレベルの権限を取り消すことを意味します。

次に、権限を取り消す例をいくつか示します。

REVOKE SELECT ON employees FROM user1; --撤销user1对employees表的SELECT权限
REVOKE UPDATE(emp_name) ON employees FROM user2; --撤销user2对employees表的emp_name字段的UPDATE权限
REVOKE CREATE SESSION FROM user3; --撤销user3创建会话的权限

4. 概要

Oracle ユーザーと権限の管理は、データベース システムの非常に重要な部分です。承認とアクセス許可の付与は、データベース ユーザーを管理するための中心的な操作の 1 つです。この記事では主に、ユーザー権限を照会するための一般的な SQL コマンドと、承認と権限の取り消しに関する関連知識を紹介します。実際のアプリケーションでは、データのセキュリティと安定性を確保するために、実際の状況に基づいて権限を管理および割り当てる必要があります。

以上がOracle ユーザーのクエリ権限の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。