SQL Master データベースエンジニアとセキュリティエンジニアとLinuxエンジニアのための情報

【MCTS:70-431】CREATE LOGINとCREATE USERの使い方

SQL ServerにはCREATE LOGINとCREATE USERという似たようなコマンドが存在しますが、同じものではありませんので注意しましょう。

まず、SQL Serverのデータベースへのアクセス方法にはWindows認証モードと混合モード(SQL Server認証とWindows認証)があります。どちらのモードでも、SQL Serverへログインし、データベースユーザとして作業を行いますが、SQL Serverにはデータベースユーザの他にSQL Serverログインというセキュリティプリンシパルを作成し、SQL Serverログインとデータベースユーザを紐付ける必要があります。

例えば、Windows認証モードの場合、PCName\loginnameというWindowsのアカウントでデータベースにアクセスするには、PCName\loginname用のSQL Serverログインを作成し、それに紐付けるデータベースユーザを作成する、という2段階の作業が必要です。

■SQL Serverログインの作成

USE master;
CREATE LOGIN [PCName\loginname]
?FROM WINDOWS
?WITH DEFAULT_DATABASE = TestData;
GO

■データベースユーザを作成し、SQL Serverログインと紐付ける

USE TestData;
CREATE USER [dbusername]
FOR LOGIN [PCName\loginname];

これで、Windows認証を使って、PCName\loginnameアカウントでデータベースにアクセスできます。

混合モード(SQL Server認証とWindows認証)で設定していて、SQL Server認証を利用してデータベースにアクセスする場合でも、最初にSQL Serverログインを作成し、次にデータベースユーザを作成しSQL Serverログインと紐付けます。

■SQL Serverログインの作成

USE master;
CREATE LOGIN dboperator01
?WITH PASSWORD = ‘password’
?,DEFAULT_DATABASE = TestData;

■データベースユーザを作成し、SQL Serverログインと紐付ける

USE TestData;
CREATE USER dboperator02
FOR LOGIN dboperator01;

この場合、SQL Server認証時にdboperator01とdboperator02のどちらでログインするのかわかりますか?答は、dboperator01です。

これで、CREATE LOGINとCREATE USERの使い方がわかりましたか?ユーザ作成にはストアードプロシージャーのsp_addloginがありますが、sp_addloginに関しては別途紹介します。