トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
Oracleキーワードから学ぶ、逆引き! SQL Server入門
文=株式会社CSK 教育サービス事業部
第9回
ユーザー管理編
スペシャルキーワード:ロール
このコーナーでは、毎回Oracleの重要なキーワードをピックアップして、それぞれに対応するSQL Serverの用語や機能を解説していきます。Oracleを基準とした逆引き形式なので、これまでにマスターしたOracleの知識を最大限に生かしながら、スムーズにSQL Serverを習得できます!
特に重要な“スペシャルキーワード”は、さらに詳しく別ページを設けて解説しています。
◎ユーザー管理編◎
第9回目のテーマは、データベースのセキュリティについて取り上げます。ログインに使用するユーザーの作成方法や、データベースに対する権限の管理のしくみなどを中心に紹介します。Oracle Serverと基本的な概念に違いはありませんが、微妙な違いを理解していただければと思います。

ユーザー作成


Oracle Serverでは、通常、1つのインスタンスに対して1つのデータベースが対応します。インスタンスごとにデータベースユーザーの設定は1つで、管理ユーザーのSYSまたはSYSTEMから他のユーザーを作成します。また、ユーザー作成時にデフォルト表領域、クォータ、プロファイルなどの設定をします。
SQL Serverでは、1つのインスタンスに対して複数データベースが対応します。そのため、インスタンスのログインアカウントとは別に、データベースのユーザーアカウントが必要です。そのデータベースユーザーは、インスタンスのログインに対応づけるように登録(作成)します。また、ユーザー登録時には、ログインしたときに最初に接続されるデータベースの設定をします。ユーザー登録にはSQL Server Enterprise Managerなどを使用します。


ロール


Oracle Serverのロールとは、「権限」をグループ化して名前をつけたものです。主に権限管理、つまりセキュリティ管理を容易にする目的で使用します。
それに対して、SQL Serverのロールは「ユーザー」をグループ化したものです。
ただし、その用途自体はOracle Serverと同じです。
SQL Serverのロールには、次の4種類があります。

・固定サーバーロール:
   ログインアカウントをグループ化するロール。
・固定データベースロール:
   データベースユーザーをグループ化するロール。
   Oracleの「事前定義済みロール」に相当。
・アプリケーションロール:
   Oracleの「アプリケーション・ロール」とほぼ同様。パスワードが必要。
・ユーザー定義データベースロール:
   Oracle同様、ユーザーが定義するロール。


☆さらに詳細はこちら→

バックアップの種類


Oracle Serverでのバックアップは、RMANやOSのユーティリティ、Exportユーティリティを使用して実行します。バックアップの単位としては「データベース全体」、「増分」、「表領域」、「データファイル」、「制御ファイル」、「ARCHIVELOGファイル」があります。
SQL Serverでは、Enterprise Manager、BACKUPステートメントなどを使用してバックアップを実行します。単位は「データベース全体」、「差分」、「ファイルグループおよびファイル」、「トランザクションログ」があります。
Oracle Serverとの大きな違いは「トランザクショログ」のバックアップです。
これを実行するとログが切り捨てられ、その切り捨てられた部分を再利用できます(「ログ・モード」参照)。また、Oracle Server、SQL Serverともにオンライン/オフラインでバックアップできますが、オフラインではバックアップ時点にしか戻せません。

プロファイル


Oracle Serverでは、各ユーザーにはそのユーザーが使用可能な複数のシステムリソースに関する制限を指したプロファイルが割り当てられます。ログイン失敗時のアカウントロックなどのパスワード制限、ユーザーが確立できる同時セッションの数などを設定し、名前をつけたものがプロファイルです。
一方、SQL Serverでは、そのようにユーザーに対する設定を1つのオブジェクトとして扱うという考え方はありません。もしパスワード制限をしたければ、WindowsユーザーをSQL Serverログインとして登録し、Windows上で複雑なパスワードを要求するなどの設定をします。その他ユーザー単位では、既定の言語を設定し、「何語のメッセージを返すか」といった設定が可能です。

クォータ


Oracle Serverでは、各ユーザーに任意の表領域(一時表領域以外)に対する領域の割り当て制限を設定できます。この制限のことを「クォータ」といいます。ユーザーは、指定した表領域内に割り当てた制限以内でオブジェクトを作成できます。
SQL Serverでは、オブジェクトを作成するときの領域指定方法がOracle Serverとは異なります。Oracle Serverの場合、オブジェクトがデフォルトでどの領域に作成されるかは、作成するユーザーごとに決められています。SQL Serverのオブジェクトは、特に指定をしないとデータベースごとに決められた「デフォルトファイルグループ」に格納されます。SQL Serverでは、通常すべてのオブジェクトをdboユーザーが所有するように作成しますので、ユーザー単位に領域制限をするという考え方がないのです。

システム権限


Oracle Serverにおいて、データベースユーザーのデータベースに対する権限は、「システム権限」で設定します。システム権限をひと言で表せば、「どのようなDDL文を発行できるのかを設定する権限」といえます。Oracle Serverでは、作成された直後のユーザーは一切権限を与えられていません。ユーザー作成後に、管理者により役割に応じた権限を付与します。
一方、SQL Serverにおいてはデータベースユーザーの権限は「ステートメント権限」にて設定します。ステートメント権限の付与には「GRANT」を、取り消しには「REVOKE」を使用します。ユーザーやロールに付与されているステートメント権限の確認には、sp_helprotectシステムプロシージャを使用して次のように指定します。

 exec sp_helprotect NULL,NULL,NULL,'s'

なお、権限を付与する管理者は、固定データベースロールの「db_owner」または「db_securityadmin」を持つ必要があります。

オブジェクト権限


ユーザー自身が所有するオブジェクトは無条件にアクセスができますが、他のユーザーが所有するオブジェクトに対してアクセスするためには、「オブジェクト権限」を付与してもらう必要があります。
Oracle ServerもSQL Serverも同様に、他ユーザーが所有するオブジェクトには、オブジェクト権限を使用してアクセスします。SQL Serverで提供するオブジェクト権限の「SELECT」、「INSERT」、「UPDATE」、「DELETE」は、表およびビューに対して付与できます。さらにSELECTおよびUPDATEは、列に対しても付与できます。INSERTおよびDELETEは、行全体の操作となります。「EXECUTE」は、ストアドプロシージャおよび関数に対して付与できます。オブジェクト権限を付与できるユーザーは、db_ownerまたはdb_securityadmin固定データベースロールを付与されている必要があります。
ユーザーに付与されているオブジェクト権限の確認は、次のように指定します。

 exec sp_helprotect NULL,NULL,NULL,'o'





・ 第1回 基本用語編:データベースオブジェクト
・ 第2回 ユーティリティ編:SQL*Plus
・ 第3回 アーキテクチャ編(1):インスタンスとデータベース
・ 第4回 アーキテクチャ編(2):セグメント/エクステント/データブロック
・ 第5回 アーキテクチャ編(3):索引
・ 第6回 プログラミング編:カーソル
・ 第7回 トランザクション/ロック編:読み取り一貫性
・ 第8回 バックアップとリカバリ編:スタンバイ・データベース
・ 第9回 ユーザー管理編:ロール
・ 第10回 パフォーマンスチューニング編:EXPLAIN PLAN(実行プランの表示)



← 特集!DBバイリンガル 目次

PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.