IBM DB2 v.9 ウィンドウで、誰かが Server\Administrator ユーザーによってデータベースに接続すると、DB2 データベースは自動的にこのユーザーにすべての権限を受け入れて付与しますか? ただし、環境によっては、サーバーの管理者がデータベース内のすべてのデータを参照する必要はありません。では、管理者がデータベースに接続するのを防ぐにはどうすればよいでしょうか?
5 に答える
9.5 以前では、インスタンスを実行するアカウントが SYSADM であるため、これは不可能です。また、管理者は、少なくともローカル アカウントのパスワードをリセットしてアクセスできるため、インスタンス所有者のアカウントを変更しても無駄になります。
ただし、9.7 以降では、インスタンス所有者はデータにアクセスできなくなります。1 つのオプションは、9.7 にアップグレードすることです。さらに、アプリケーションが使用する接続用に AD アカウントをセットアップできます。ローカル管理者は必ずしもこれらの資格情報に変更できるとは限りません。
それでも、管理者は最終的に (通常は暗号化されていない) データベース ファイルにアクセスできます。ほとんどの場合、セキュリティの管理面を改善できます。
うーん...何度もこのコマンドで取り消そうとしますが、管理者アカウントでデータベースに接続すると、DB2は自動的に管理者に権限を再度付与します。
念のためにもう一度やってみます。
Windows では、データベース マネージャー構成パラメーターは、インスタンス レベルでSYSADM_GROUP
誰が権限を持つかを制御します。SYSADM
が空白の場合SYSADM_GROUP
(Windows のデフォルト)、DB2 はデフォルトでローカル マシンの管理者グループを使用します。
これを修正するには、Windows で新しいグループを作成し、SYSADM_GROUP
この新しいグループを使用するように値を変更します。DB2 サービスが実行される ID がこの新しいグループに属していることを確認してください。この変更を行った後、管理者グループのメンバーはSYSADM
権限を失います。
CONNECT
Kevin Beck が述べているように、デフォルトではCONNECT
権限が PUBLIC に付与されているため、データベースに対する権限の制限も検討する必要があるかもしれません。
デフォルトでは、DB2 データベースはCONNECT
public に付与された権限で作成されます。一部のユーザーの接続を制限する場合は、次のことを行う必要があります
GRANT CONNECT ON DATABASE TO <user1>, <user2>, ...
次に、PUBLIC から CONNECT 権限を取り消します。
REVOKE CONNECT ON DATABASE FROM PUBLIC
sysadm
管理者がグループに所属しているという理由だけで、通常の状況では可能ではないと思います。
私が考えることができるオプションは次のとおりです(ただし、試したことはありません)。
- sysadm グループを別のものに設定します (「db2 update dbm cfg using sysadm_group blah」)。これを行うときは、いくつかあると確信しているため、ドキュメントで警告と落とし穴を確認してください。
- OS 認証の使用を停止します。別のセキュリティ プラグインを使用します (8.2 以降のみ)。これにより、認証とグループが新しい場所 (LDAP サーバーなど) に移動します。次に、管理者を新しい場所に追加しないでください。特に、管理者を sysadm グループに再度追加しないでください。