データベースユーザーとアクセス制御
データベースユーザーを作成し、必要な権限を付与して、堅牢なアクセス制御の仕組みをデータベースに導入します。
「データベースユーザーとアクセス制御」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
データベースユーザー管理入門
データベースユーザーとアクセス制御のレッスンへようこそ。このレッスンでは、データベースに対して誰が何を実行できるかを管理する方法を学びます。
ユーザーごとに異なる権限を設定してコンピューターのユーザーアカウントを作成するようなものだと考えてください。
アクセス制御が重要な理由
適切なアクセス制御は、データベースのセキュリティと整合性に不可欠です。アクセス制御によって、次のことが可能になります。
- 不正アクセスを防止する:許可されたユーザーだけが接続できます。
- 最小権限の原則を徹底する:ユーザーには本当に必要な権限だけを付与します。
- 操作を監査する:誰がデータを変更したか追跡できます。
新しいデータベースユーザーを作成する
まず、PostgreSQL に新しいユーザーアカウントを作成しましょう。このユーザーにはユーザー名と強力なパスワードが必要です。
PostgreSQL クライアント(例:psql)で次のコマンドを実行します。
CREATE USER coddykit_analyst WITH PASSWORD 'SuperSecureP@ssw0rd!';読み取り専用権限を付与する
ユーザーを作成できたので、権限を付与しましょう。まずは、特定のテーブルへの読み取り専用アクセスを付与するのが一般的です。
GRANT SELECTコマンドを使用すると、ユーザーはテーブルからデータを読み取れるようになります。
GRANT SELECT ON TABLE public.sales_data TO coddykit_analyst;データ変更を許可する
ユーザーがデータの追加、変更、削除を必要とする場合はどうすればよいでしょうか。その場合は、INSERT、UPDATE、またはDELETE権限を付与します。
レコードの追加と更新を許可する方法は次のとおりです。
GRANT INSERT, UPDATE ON TABLE public.customer_info TO coddykit_analyst;ALL PRIVILEGES を理解する
ALL PRIVILEGESオプションは、データベースオブジェクトで利用可能なすべての権限を付与します。使用には十分な注意が必要です。
GRANT ALL PRIVILEGES ON DATABASE my_db TO admin_user;は強力な権限を付与します。WITH GRANT OPTION:付与されたユーザーが、同じ権限を他のユーザーに付与できるようにします。適切に管理しないとセキュリティリスクになります。
権限を取り消す
ユーザーの権限を縮小したり、完全に削除したりする必要が生じることがあります。REVOKEコマンドを使うと、これを実行できます。
たとえば、顧客情報を更新する権限を削除するには、次のようにします。
REVOKE UPDATE ON TABLE public.customer_info FROM coddykit_analyst;ユーザー権限を一覧表示する
ユーザーが実際にどの権限を持っているか確認することが重要です。そのために、データベースの information schema にクエリを実行できます。
次のクエリは、特定のユーザーが特定のテーブルに対して持つ権限を表示します。
SELECT grantee, privilege_type
FROM information_schema.role_table_grants
WHERE table_schema = 'public' AND table_name = 'sales_data' AND grantee = 'coddykit_analyst';データベースユーザーを削除する
ユーザーアカウントが不要になったら、潜在的なセキュリティリスクを減らすために削除するのがよい習慣です。
DROP USERコマンドを使用して、データベースシステムからユーザーを削除します。
DROP USER coddykit_analyst;セキュリティのベストプラクティス
堅牢なデータベースセキュリティのため、常に次のガイドラインに従ってください。
- 最小権限:必要な権限だけを付与します。
- 強力なパスワード:複雑で推測されにくい、ユーザーごとに異なるパスワードを必須にします。
- 定期的な監査:ユーザーアカウントとその権限を定期的に確認します。
- ロールベースアクセス:特定の権限を持つロールを作成し、ユーザーをロールに割り当てます。
理解度を確認する
report_viewerという新しいユーザーに、daily_logsテーブルのデータの読み取りと、古いエントリの削除を許可する必要があります。これを実現するコマンドの組み合わせはどれでしょうか。
復習:ユーザーとアクセス制御
よくできました。データベースユーザーとアクセス制御の基本を学びました。次の内容を扱いました。
- データベースユーザーを作成・削除する。
SELECT、INSERT、UPDATE、DELETEなどの特定の権限を付与・取り消しする。ALL PRIVILEGESやWITH GRANT OPTIONなどの強力なオプションを理解する。- 適切なユーザー管理によってデータベースを安全に保つためのベストプラクティスを学ぶ。
これらのスキルは、安全で適切に管理されたサーバー環境を維持するために不可欠です。
よくある質問
「データベースユーザーとアクセス制御」レッスンは無料ですか?
はい。「データベースユーザーとアクセス制御」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「データベースユーザーとアクセス制御」で何を学びますか?
データベースユーザーを作成し、必要な権限を付与して、堅牢なアクセス制御の仕組みをデータベースに導入します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「データベースユーザーとアクセス制御」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- PostgreSQL/MySQLのインストール
- データベースユーザーとアクセス制御
- データベース接続のセキュリティ保護
- データベースのバックアップと復元戦略