3
2

More than 3 years have passed since last update.

OracleとDBとDBAとロール

Posted at

DBAとは

「DBA」で検索をすると Database Administratorの略 と出てくる。
つまりは「人間にあたえられた立場」という意味だろうと解釈したが、私が気にしているのはたぶん違う。

今回気にしているDBAとは

CREATE USER --- をするときに
GRANT DBA TO --- としてオプション指定されている
ここの DBA のこと

DBA ロール で検索してみる。

システム権限です

Oracleのシステム権限は2つあります。DBAロール・SYSDBA権限です
Oracleでシステム権限をもつユーザーを取得する(DBAロール・SYSDBA権限):Oracle初心者でもスッキリわかる

上の記事に書いてある限りで考えると
1.システム権限を持っている
2.同様にシステム権限を持っているSYSDBAに比べると弱い
ほか、デフォルトでDBAロールを持っているユーザ等についても言及されているものの、
「結局DBAってどういう役割なの」という疑問の解消には至らず。

そもそもシステム権限とは

システム権限: システム権限は、ユーザーが特定のアクションまたは特定の種類のスキーマ・オブジェクトでアクションを実行できるようにする権限です。たとえば、CREATE TABLEシステム権限はユーザーと関連付けられたスキーマで表の作成を、CREATE USERシステム権限はユーザーにデータベース・ユーザーの作成を可能にします。
7.2 ユーザー権限およびロールについて:Oracle Database 2日でデータベース管理者 12c リリース1 (12.1)

1.システム権限には二種類ある。
この二種類は権限の行使対象で分かれてくる。具体的にはテーブルとユーザ。
GRANT DBA TO user_name
の場合はどっちにつけているのだろうという疑問。
なお、

ユーザーの作成および権限の付与、ロールの作成および付与、あらゆるスキーマでのスキーマ・オブジェクトの作成、変更および削除などを含むほとんどの管理機能をユーザーが実行することを可能にします。これはすべてのシステム権限を付与しますが、データベース・インスタンスの起動または停止の権限は含まれません。この権限はデフォルトでSYSおよびSYSTEMユーザーに付与されます。

との部分を鑑みるに、データベースのガワを触ることはできないが、データベース内部では割と自由に動けるだけの権限であるように思える。

管理者用のロール。ADMIN OPTION付きのすべてのシステム権限
Oracleちょこっとリファレンス

DBA TO ユーザにDBA権限を与える場合に指定します。
ノンストップデータベース HiRDB Version 9 SQLリファレンス

結論

明解に「こう!」と言えるものではないものの
-GRANT DBA TO user_name は
-user_nameで指定したユーザに
-Oracle的には二番目につよい権限を付与する

-DBAロール について
-Oracle的には二番目につよい権限で
-一番目につよい権限はSYSDBA
-SYSDBAとDBAの違いは「DBのガワ操作」ができるかどうか等
-DBの枠(ガワ)は操作ができないが、内部(テーブルとか)の操作に不自由することはない

最小権限的なお話で考えると
DBの中身は自由に操作できないと困るけれど、
DBを落としたりする必要はない、
DB内での 操作のテスト用 アカウント
なんかにちょうどいいのかもしれない。

2019/11/14 エンジニア 4ヵ月目

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2