この記事の注意事項
この記事の内容はこちらの記事の開発の続きです。
この記事で実施していること
- ユーザーごとに管理者権限を付与する機能
- 管理者権限に応じて、機能を制御する機能
追加機能の仕様
- ユーザー情報テーブルに、管理者権限のカラムを追加
- 管理者権限に応じて、管理者用の機能を制御する処理を追加
- アカウント追加時に、管理者権限を選択できるように機能を追加
- アカウント追加時に、管理者権限がDB側に登録されるようにSQLを修正
1. 管理者権限のカラムを追加
SSMSでカラムを追加し、初期データを入力します。データの数にもよりますが、クエリを実行すれば、効率よく、登録できます。
サンプルコード
Update UserInfo Set admin_flag = 'False';
2. 管理者専用の機能を制御
ユーザーに管理者権限が付与されているかを確認するため、以下のSQLを実装し、実行します。
サンプルコード
SELECT CASE WHEN EXISTS
(
SELECT 1
FROM USERINFO
WHERE user_id = @userID
AND admin_flag = 'True'
)
THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END AS isAdmin
SQLの実行結果に応じて、管理者用の機能の使用を制御しています。
管理者権限がある場合
管理者権限がない場合
3. アカウント追加画面に、管理者権限が選択できるようにデザインを修正
単純に、管理者権限を付与できるよう、デザインを修正しただけになります。
4. アカウント追加時のSQLを修正
アカウント追加時に、管理者権限をふよするために、既存のSQLを修正します。
INSERT INTO UserInfo (id, user_id, password,revoke_count, revoke_flag, admin_flag)
VALUES (@id, @userID, @password, 0, 'False', @admin_flag);
注意事項
- この記事では、SQL Server、SSMS、visual studioを使用しているので、試してみたい方は事前に準備が必要です。
- 本記事に掲載されているコードは掲載用にサンプルとして掲載しているものです。したがって本記事を参考にし、コーディングを進める場合は作成しているアプリに応じて、各自で判断して、適応してください。
- 関連する記事の一覧はこちら。
※参照先のリンクが切れている場合は、トップページから確認してください。
この記事は誰向けの記事か?
- VB.NETやSQL Serverに触れたことがない人
- リボークの実装について、一通りの流れを確認したい人
環境
- OS:Windows10
- SQL Server
- SQL Server Management Studio(SSMS):v19.0.2
- visual studio 2022
- ChatGPT
本記事における注意事項
- 本記事は、備忘録としてまとめたものになります。
- 他の方の参考になる可能性も踏まえて、一般公開も行なっております。
- また記載内容はすべて、正しい内容が記載されているとは限りません。
- 誤った内容を見つけた場合は、ご指摘をお願いいたします。
- この記事の内容では、一部、ChatGPTを利用しております。