|
Accessプロジェクトからストアドプロシージャを実行することができます。ただしその方法は、OSQLコマンドやクエリアナライザの方法とは多少異なります。
Accessプロジェクトでは、データベースサーバーに直接SQL文を投入し、それを実行させるという機能がありません。そこでユーザ定義のストアドプロシージャをデータベースの中に作成し、そのプロシージャの中でパスワードを変更するプログラムを作ります。
Accessプロジェクトから新しいデータベースを作成し、それに対して接続を行なうプロジェクトを作成しましょう。本連載第2回1節と3節を復習してください。
なおsaログインのパスワードを変更するため、プロジェクトの接続で使用するログイン名はsaを使います(図14。厳密にはsysadminサーバーロールに所属するログインです)。

図14 Accessプロジェクト(新しいデータ)
saログインを使ってAccessプロジェクトを立ち上げる。
インストール直後のsaログインのパスワードは無設定のため、空欄とする。
クエリの新規作成ボタンを押して、テキストストアドプロシージャの作成を選択してください(図15.なおAccess
2000では画面構成が多少変わります。ここではAccess 2002を使用しております)。

図15 テキストストアドプロシージャの作成
図16のような初期画面が表示されます。この初期画面を入力修正し、図17のようなプログラムを入力してください。

図16 テキストプロシージャの初期作成画面について

図17 saのパスワードを変更するストアドプロシージャの作成
CREATE PROCEDURE SetSAPassword
SetSAPasswordという名前のユーザ定義のストアドプロシージャを作成するという意味です。ストアドプロシージャのプログラムはAS句以降に記述します。
SET NOCOUNT ON
これはおまじないだと思って、入れてください。
EXEC SP_PASSWORD NULL , 'NewPassWord' , 'sa'
saログインのパスワードを変更する命令を書きます。EXEC命令を忘れずに。
RETURN
ストアドプロシージャの終了を表します。呼び出し元に戻ります。
以上を入力したら、ウィンドウを閉じてストアドプロシージャを保存してください。
図18のように、今作成したストアドプロシージャの名前を確認することができます。

図18 新しく作成したストアドプロシージャ
このストアドプロシージャを実行しましょう。ストアドプロシージャの名前を選択して、『開く』ボタンを押してください。

図19 ストアドプロシージャの実行
図19のような確認メッセージが表示されます。これはAccessプロジェクトから実行されるストアドプロシージャは、レコードセットが返されることを期待しており、返されたレコードセットをデータシートで表示しようとするからです。しかしこのストアドプロシージャはパスワードを変更するだけで、レコードセットは返しません。確認メッセージは無視してください。
以上により、saログインのパスワードが変更されました。
Accessプロジェクトを作成したときに入力したログイン情報は、『ログイン名sa、パスワード無し』でした。saログインのパスワードを変えましたので、Accessプロジェクトの接続情報も変更しなければいけません。
[ファイル]メニューの[接続]
を実行します。図20のように、saログインのパスワードは空欄になったままです。図21のようにパスワードを正しく修正して、接続のテストを確認しましょう。

図20 Accessプロジェクトの接続情報

図21 Accessプロジェクトのログインパスワードを変更する
なお『パスワードを保存する』チェックボックスは、チェックしないでください。この保存はパスワードが丸見え状態でセキュリティ的に大変危険です。
プロジェクトファイル(拡張子ADP)の中身をメモ帳などで注意深く観察すると、パスワードがどこに書かれているのか調べることができます。
|