この特集のトップページへ
>
Chapter 3:データストア層の構築
COLUMN MSDEのパスワードの設定 | ||
MSDEをインストールした直後は,MSDEの管理アカウントであるsaというユーザーだけが存在し,このアカウントには特にパスワードが設定されていない。ユーザーsaはMSDEに対してすべての操作を実行できるため,パスワードを未設定のまま放置するのは,セキュリティ上よくない。 MSDEの設定を変更する方法はさまざまだが,ここではOSQLユーティリティを使ったパスワードの設定方法について説明しておこう。 MSDEのパスワードを変更するには,OSQLユーティリティを実行し,sp_passwordというストアドプロシージャを呼び出せばよい。sp_passwordストアドプロシージャの呼び出し書式は,次のとおりである。 古いパスワードもしくは新しいパスワードが空(未設定)であれば,NULLを指定する。 その次にgoコマンドを実行すると,sp_passwordストアドプロシージャが実行され,パスワードが変更される。goコマンドは,その直前に指定したすべてのTransact-SQLステートメントを実行するための命令である。 たとえば,ユーザーsaのパスワードを“Adminpass”というパスワードに変更するには,次のようにする(Fig.3-34)。 EXECUTE sp_password NULL, 'Adminpass', 'sa' go Fig.3-34 OSQLユーティリティを使ったパスワードの変更ところで,ユーザーsaはデータベースの管理特権を所持する特殊アカウントなので,このユーザーでデータベースに接続することは,あまり日常的ではない。一般的には,特定のデータベースにアクセスする権限のみを所持するユーザーを作り,そのユーザーでアクセスする。そうしておけば,万一パスワードが漏洩しても,そのデータベース以外にアクセスされることはないからである。 OSQLユーティリティでユーザーを作るには,次のように,sp_addloginストアドプロシージャを呼び出す。 新たにユーザーを作成したら,そのユーザーに対してデータベースの使用権を割り当てる。データベースの使用権を割り当てるには,次のようにsp_grantdbaccessストアドプロシージャを呼び出せばよい。
USE 使用権を与えるデータベース名 たとえば,businessAccountというユーザーを作り,businesssampleDBというデータベースに対する使用権限を与えるには,次のようにする(Fig.3-35)。
EXECUTE sp_addlogin businessAccount, Fig.3-35 ユーザーアカウントの追加もし,与えたデータベースの使用権限を取り除きたいときには,sp_revokedbaccessストアドプロシージャを次のようにして呼び出す。
USE 使用権限を取り除きたいデータベース名 さらに,作成したユーザーアカウントそのものを削除してしまいたいときには,次のようにsp_droploginストアドプロシージャを呼び出す。 EXECUTE sp_droplogin 削除したいユーザー名 なお,ここではユーザーアカウントの操作にOSQLユーティリティを使ってTransact-SQLステートメントを実行する方法を示したが,SQL Server Enterprise Managerを使うと,GUIでより簡単に設定することができる。 また,ユーザーやデータベースに対する設定で用いるTransact-SQLステートメントは,ここに示しただけではない。たとえば,「特定のユーザーに対して特定のテーブルの読み込み権限だけを与える」というように,より細かく権限を制御するためのTransact-SQLステートメントも用意されている。 それらについての詳細は,SQL Server 7.0やTransact-SQLについての文献を参照してほしい。 | ||
Chapter 3 18/22 |