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に関しては別途紹介します。