SQL Server 新規にログインアカウントを作成する

SQL Server 新規にログインアカウントを作成する

SQL Server の勉強をする場合、もしもに備えて仕事で使うデータベースやログインアカウントは使いたくないですね。
SQL Serverは簡単にデータベースやログインアカウントを作成できます。

基本的にSQL Serverの学習を行う際は、自前のPCにデータベースを作成し新規に学習ユーザーを作ることが、セキュリティ上からも間違えてデータベースを壊さないためにも良いです。

今回は新規にログインアカウントを作成する方法を紹介します。
新規ログインアカウント名を「Learning-user」と言う名前にします。

新規にログインアカウントを作成する

操作はとっても簡単なのですが、作成する権限が必要なので仕事先で作成する場合はデータベース管理者に相談してください。
自前で自分のPCにSQL Serverをインストールした場合は、saでログインするか、sysadminもしくはsecurityadmin権限があるか確認してください。
もし権限が無い状態で新規にローカルアカウントを作成すると以下のようなエラーになります。

新しいログインを作る

SSMS(SQL Server Management Studio)を立ち上げます。
作成したいSQL Serverを展開し、更に[セキュリティ]を展開します。
[ログイン]が展開表示されるので、右クリックでコンテキストメニューを開きます。
コンテキストメニューの中から[新しいログイン]をクリックします。

ログイン-新規作成

ログイン-新規作成画面が表示されます。

他のデータベースに影響を与えないようにするために、作成するログインアカウントはSQL Server認証が好ましいです。
会社や仕事先の場合は、データベース管理者に相談してください。

ログイン名を任意に入力します。(例ではLearning-user)
SQL Server 認証を選択します。
パスワードを任意の文字列で入力します。
パスワードポリシーを適用するは基本的に必要ないと思います。
※重要なデータベースに元々アクセスしないし学習用なので。
既定のデータベースが決まって居れば指定してください。
最後にOKボタンをクリックして登録します。

作ったログインアカウントにデータベースのアクセス権を与える

作ったばかりのログインユーザーは権限を持っていないため、アクセス拒否をされてしまします。
試しにアクセス拒否されると以下のようになります。

そこで、作成したlearning-userがlearning-dbにアクセスできるようにします。
SSMSを立ち上げます。
SQL Serverを展開し、更に[データベース]を展開します。
既存のデータベースが展開表示されるので、Learning-dbデータベースを確認します。
[Learning-dbデータベース]をクリックして展開します。
[セキュリティ]を展開します。
[ユーザー]を展開します。
Learning-userが居ないことを確認します。
[ユーザー]を右クリックしてコンテキストメニューを開きます。
[新しいユーザー(N)]をクリックします。

「データベース ユーザー – 新規」画面が表示されます。
ログイン名の右端にあるボタンをクリックします。

「ログインの選択」画面が表示されます。
[参照(B)]ボタンをクリックします。

「オブジェクトの参照」画面が表示されます。
今回は先ほど作成した新規ログインアカウントを探して、チェックボックスにチェックを入れます。
[OK]ボタンをクリックします。

「ログインの選択」画面が表示されます。
選択するオブジェクト名欄にlearning-userが表示されているのを確認します。
[OK]ボタンをクリックします。

「データベース ユーザー – 新規」画面が表示されます。
ログイン名が表示されているので確認します。
ユーザー名を適当な名前で入れます。今回はそのままlearning-userとしました。
右側のページ選択メニューのメンバーシップをクリックします。

「データベース ロールのメンバーシップ」設定画面が表示されます。
db_datareader、db_datawriter、db_ddladminにチェックを入れます。
簡単なロールの役割を下に記述しておきます。
[OK]ボタンをクリックします。

Learning-userが追加されていることを確認します。

SSMSでログインできることを確認します。
正常にログインできたらデータアクセスが出来るようになっています。
データベース操作で足らない権限が出てきたらロールを追加して対応します。

固定データベース ロール

固定データベース ロールとその機能を示します。
これらのロールは、すべてのデータベースに存在します。

固定データベース ロールの名前 [説明]
db_owner db_owner 固定データベース ロールのメンバーは、データベースでのすべての構成作業とメンテナンス作業を実行でき、 SQL Serverでデータベースを削除することもできます。 ( SQL データベース と SQL データ ウェアハウスでは、一部のメンテナンス作業にサーバー レベルの権限が必要であり、 db_ownersでは実行できません。)
db_securityadmin db_securityadmin 固定データベース ロールのメンバーは、ロールのメンバーシップを変更し、権限を管理できます。このロールにプリンシパルを追加すると、特権が意図せず昇格されることがあります。
db_accessadmin db_accessadmin 固定データベース ロールのメンバーは、Windows ログイン、Windows グループ、および SQL Serverログインのデータベースに対するアクセスを追加または削除できます。
db_backupoperator db_backupoperator 固定データベース ロールのメンバーは、データベースをバックアップできます。
db_ddladmin db_ddladmin 固定データベース ロールのメンバーは、すべての DDL (データ定義言語) コマンドをデータベースで実行できます。
db_datawriter db_datawriter 固定データベース ロールのメンバーは、すべてのユーザー テーブルのデータを追加、削除、または変更できます。
db_datareader db_datareader 固定データベース ロールのメンバーは、すべてのユーザー テーブルからすべてのデータを読み取ることができます。
db_denydatawriter db_denydatawriter 固定データベース ロールのメンバーは、データベース内のユーザー テーブルのデータを追加、変更、または削除することはできません。
db_denydatareader db_denydatareader 固定データベース ロールのメンバーは、データベース内のユーザー テーブルのデータを読み取ることはできません。

以上、簡単な説明でしたが「SQL Server 新規にログインアカウントを作成する」でした。