Windows 認証
SQL Server 認証
認証モードの変更
SQL Server のプロパティの [セキュリティ] タブで変更が可能です。
パスワードの暗号化
自動的に必ず行われます。ユーザーは画面上でパスワードを確認できません。
Transact-SQL 定義
WITH ENCRYPTION を指定すると、 ストアドプロシージャ、トリガ、ビューの定義を syscomments システムテーブルに暗号化して保存できます。
ネットワークパケット暗号化
サーバークライアントユーティリティを使用して、クライアントとサーバー間での通信パケットを暗号化することができます。
SQL Server では、SQL Server へ接続するアカウントを作成し、その中でどのユーザーがデータベースにアクセスできるかをデータベースごとに設定します。
Enterprise Manager のセキュリティフォルダのログインにて SQL Server にログインできるアカウントを登録します。ここに登録されていないと、SQL Server に接続できません。sp_grantlogin ストアドプロシージャにて設定も可能です。sp_revokelogin でアカウントの削除、sp_denylogin でアクセス拒否の設定が可能です。
データベースフォルダのユーザーにて、ログインで追加したユーザーを指定します。ここで、ログインと同時に設定することも可能です。
デフォルトのアカウント
ロールとはデータベースで使用されるグループです。Windows の Global Group や Local Group にあたります。
固定サーバーロール サーバーレベルの管理権限をグループ化します。syslogins システムテーブルに格納されています。sp_addsrvolemember ストアドプロシージャでログインアカウントを追加・削除できます。 固定サーバーロールの追加、削除、変更はできません。 固定データベースロール データベースレベルの管理権限をグループ化します。sysusers システムテーブル格納されます。 Public データベースロール 特殊なデータベースロールに Public があります。このロールは、すべてのユーザーを示します。Windows の Everyone に近い存在です。また、すべてのデータベースに存在しています。削除することはできません。 アプリケーションロール 特定のアプリケーションに対してセキュリティの実装を許可します。アプリケーションロールを使用するにはアプリケーションがわで、SQL Server に接続後、sp_setapprole ストアドプロシージャでアプリケーションロールを有効にする必要があります。この権限はアプリケーションが接続している最中有効です。 同じ接続内で sp_setapprole を行うと、エラーになります。また、任意にアプリケーションロールを無効にすることはできません。 Web では「接続プール」があり、ページを落としても、一定時間接続を確保します。そのため、ASP などで DB にアクセスする場合は、エラーになることがあります。 |
|
アクセス権には次の 3 種類があります。
権限は継承されます。ユーザーはユーザー固有につけられたアクセス権と、ロールにつけられたアクセス権を組み合わせて、より厳しい方を優先します。
例えば以下のような場合、UserA に割り当てられる権限は、SELECT と INSERT のみです。
SELECT | INSERT | UPDATE | DELETE | |
Public | なし | 許可 | 許可 | 拒否 |
User A | 許可 | なし | 拒否 | 許可 |
ビューとストアドプロシージャの権限
ビューとストアドプロシージャを使用すると、ビューやストアドプロシージャの権限を管理するだけで、これらが参照するオブジェクトを管理する必要がなくなります。
ただし、元となっているテーブルの作成者とビューやストアドプロシージャの作成者が違う場合、それぞれのアクセス権が適用されます。