 |
| 5.dboユーザ |
|
ログインAさんが、Sampleデータベースに接続できるようになりました。
それではAccessプロジェクトからテーブルを新しく作成してみましょう。図11のように、新規作成ボタンを押してください。
|
 |
| 図11:テーブルの新規作成処理 |
|
 |
|
ところが、図12のようなエラーメッセージが表示されました。つまり、ログインAさん(Sampleデータベースではユーザ名Aさん)は、
新しいテーブルを作成することができなかったのです。なぜでしょうか。
|
 |
| 図12:新しいテーブルを作成することはできない |
|
 |
データベースに、テーブルなどを始めとするデータベースオブジェクトを新しく作成したり、既存のデータベースオブジェクトの内容を変更したりするためには、
セキュリティ的に厳しい検査が行われます。この検査に合格しない限り、データベースオブジェクトの作成や変更操作は許されません。
データベースオブジェクトを作成するのは、そのデータベース本体を作成した人が行うのが一般的です。Sampleデータベースを作成した人は、一体誰でしょうか?
|
 |
| 図13:データベースのプロパティを表示する |
|
 |
|
図13のようにデータベースのプロパティを選択して、そのプロパティを表示します
(図14)。その中にデータベースの所有者名があります。
|
 |
| 図14:データベースの所有者が判明する |
|
 |
たとえばSampleデータベースでは、
DBSERVER\akira
となっています。これはDBSERVERコンピュータのakiraというユーザが作成したことを表しています。所有者名の中に¥記号が含まれている場合は、
WindowsNT認証でサーバーに接続をしたことを示しています。
SQL Server認証で接続を行ってデータベースを作成した場合は、図15のように表示されます。
この場合は、saログインでデータベースが作成されたことを表しています。
|
 |
| 図15:saログインがデータベースを作成した |
|
 |
|
このようにデータベース本体を実際に作成した人は、そのデータベースのdboと呼ばれる特別なユーザ名に自動的に割り当てられます
(図16)。dboとは、Database Ownerの略で、データベースの所有者という意味があります。
|
 |
| 図16:各データベースの中には、dboユーザが必ず存在する |
|
 |
データベース所有者はそのデータベースの全能権限者です。データベースに対して、新規作成命令や更新命令、削除命令などのあらゆるすべての命令が
許可されていますので、セキュリティ的には何も権限違反は発生しません。このためdboユーザのオペレーション操作に間違いは許されません。
くれぐれも注意してください。
データベースサーバーのSystem
Administratorサーバーロールに所属するログイン名は、データベースサーバーに存在する個々のデータベースのdboユーザに
自動的に割り当てられます。このためサーバーに関する仕事だけではなく、個々のデータベースに関する仕事に関しても、セキュリティ的にはフリーパス状態になり、
名実ともにデータベースサーバー全体の全能権限者となります。
Access 2002ではsaログインを使うことが多いわけですが、このsaログインはSystem
Administratorサーバーロールに所属しているため、すべてのデータベースの
dboユーザに割り当てられ、セキュリティ的にも何ら問題は起こらない最強のユーザです。
|
 |
 |
 |
|
|
 |
(C) 2005 Professional Association for SQL Server Japan. All rights reserved. |
 |