#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ヵ月目