From 00864e2bed4920f7d84b34ee1c603c44ed1a80b9 Mon Sep 17 00:00:00 2001 From: Ali Najmabadi Date: Sat, 5 Oct 2024 16:21:26 +0330 Subject: [PATCH] add postgresql/create-user docs --- src/components/Sidebar/data.js | 5 + src/pages/dbaas/postgresql/create-user.mdx | 166 +++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 src/pages/dbaas/postgresql/create-user.mdx diff --git a/src/components/Sidebar/data.js b/src/components/Sidebar/data.js index f6816db8..763de60f 100644 --- a/src/components/Sidebar/data.js +++ b/src/components/Sidebar/data.js @@ -3211,6 +3211,11 @@ export default { icon: , link: "/dbaas/postgresql/choose-version" }, + { + title: "ایجاد و مدیریت کاربر جدید", + icon: , + link: "/dbaas/postgresql/create-user" + }, { hr: true }, diff --git a/src/pages/dbaas/postgresql/create-user.mdx b/src/pages/dbaas/postgresql/create-user.mdx new file mode 100644 index 00000000..c3db5878 --- /dev/null +++ b/src/pages/dbaas/postgresql/create-user.mdx @@ -0,0 +1,166 @@ +import Layout from "@/components/Layout"; +import Button from "@/components/Common/button"; +import Section from "@/components/Common/section"; +import Alert from "@/components/Common/alert"; +import Tabs from "@/components/Common/tab"; +import Step from "@/components/Common/step"; +import Card from "@/components/Common/card"; +import Important from "@/components/Common/important"; +import Highlight from "@/components/Common/highlight"; +import Link from "next/link"; +import NextPage from "@/components/Common/nextpage"; +import Asciinema from "@/components/Common/asciinema"; + +import Head from "next/head"; + + + +مستندات ایجاد و مدیریت کاربر جدید در دیتابیس PostgreSQL - لیارا + +# ایجاد و مدیریت کاربر جدید در دیتابیس PostgreSQL +
+ +وقتی که شما یک دیتابیس PostgreSQL جدید در لیارا، ایجاد می‌کنید؛ به صورت خودکار یک کاربر به نام root همراه با آن ایجاد می‌شود که همان دسترسی پیش‌فرض است. +دسترسی پیش‌فرض یا کاربر root در PostgreSQL، یک اکانت مدیریتی با بیشترین سطح دسترسی است. این کاربر معادل administrator در سیستم‌های عامل مختلف است و می‌تواند تمام عملیات‌های مدیریتی و اجرایی در پایگاه داده را انجام دهد. +
+ +شما می‌توانید با استفاده از ابزارهای مختلفی نظیر PSQL، کاربران جدید با دسترسی‌های جدید +در دیتابیس خود ایجاد کنید؛ در ادامه به نحوه ساخت کاربران جدید با دسترسی‌های مختلف در دیتابیس، پرداخته شده است. +
+ +برای ساخت کاربر جدید در دیتابیس، در ابتدا باید ابزار PSQL را بر روی سیستم (یا سرور خود)، نصب کنید؛ در ادامه، بایستی با استفاده از اطلاعات موجود در بخش **نحوه اتصال** دیتابیس‌تان در لیارا و با استفاده از دستور زیر، در ترمینال، به دیتابیس انتخابی، با کاربر root، متصل شوید: + +
+
+ + {`psql -h DB_HOST -p DB_PORT -U DB_USERNAME -W DB_NAME`} + +
+
+بعد از اجرای دستور فوق، رمزعبور از شما خواسته می‌شود که باید ابتدا آن را وارد کرده و سپس به دیتابیس مدنظرتان، متصل می‌شوید. + +پس از اتصال موفق، می‌توانید با استفاده از دستور CREATE USER، کاربران مد نظر خود را، ایجاد کنید. + +
+برای ایجاد کاربر جدید که تنها اجازه خواندن اطلاعات (READ) از دیتابیس را دارد و می‌تواند از آن بکاپ بگیرد، +باید در ابتدا دستوری مانند قطعه کد زیر را اجرا کنید: + +
+
+ + {`CREATE USER readonly_user WITH PASSWORD 'password';`} + +
+
+ +دستور فوق، یک کاربر با نام readonly_user و رمزعبور password ایجاد می‌کند. +برای تعیین دسترسی کاربر، اکنون می‌توانید مشابه دستورات زیر، عمل کنید: +
+
+ + {`GRANT CONNECT ON DATABASE TO readonly_user; +GRANT USAGE ON SCHEMA public TO readonly_user; +GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user; +`} + +
+
+ + با انجام کار فوق، کاربر ایجاد شده می‌تواند +فقط داده‌ها را، در تمامی جداول موجود در دیتابیس مورد نظر، SELECT کند (بخواند). + + +
+در صورتی که بخواهید کاربری ایجاد کنید که فقط به چند جدول مشخص دسترسی داشته باشد، می‌توانید مانند دستورات زیر عمل کنید؛ در ابتدا بایستی کاربر را ایجاد کنید: + + +
+
+ + {`CREATE USER limited_user WITH PASSWORD 'password';`} + +
+
+ +پس از ایجاد کاربر، باید دسترسی‌های آن را مانند دستورات زیر، تعیین کنید: + +
+
+ + {`GRANT CONNECT ON DATABASE TO limited_user; +GRANT USAGE ON SCHEMA public TO limited_user; +GRANT SELECT, INSERT, UPDATE ON TABLE public., public. TO limited_user; +`} + +
+
+ +دستورات فوق، یک کاربر به نام limited_user و رمزعبور password ایجاد می‌کند که می‌تواند +در جداول \ و \ در یک دیتابیس مشخص، عملیات SELECT , INSERT و UPDATE را، انجام دهد. + + +
+برای مشاهده دسترسی‌های همه کاربران در PostgreSQL می‌توانید +از قطعه کد زیر استفاده کنید: + +
+
+ + {`\\du`} + +
+ +
+برای حذف دسترسی‌های یک کاربر در PostgreSQL، می‌توانید از دستور REVOKE استفاده کنید؛ +به عنوان مثال فرض کنید کاربر readonly_user دسترسی SELECT به جداولی در اسکیمای public دارد و شما می‌خواهید این دسترسی را از او سلب کنید. +برای این کار، می‌توانید مانند قطعه کد زیر، عمل کنید: + +
+
+ + {`REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM readonly_user;`} + +
+
+ +البته اگر بخواهید دسترسی‌های خاص به جداول مشخصی را از این کاربر، حذف کنید؛ می‌توانید مشابه دستور زیر، عمل کنید: + +
+
+ + {`REVOKE SELECT, INSERT ON TABLE public. FROM readonly_user;`} + +
+
+ +برای حذف دسترسی کاربر به یک دیتابیس نیز، می‌توانید از دستور زیر استفاده کنید: +
+
+ + {`REVOKE CONNECT ON DATABASE FROM readonly_user;`} + +
+
+ +برای حذف دسترسی کاربر به یک اسکیمای خاص هم می‌توانید مشابه دستور زیر، رفتار کنید: +
+
+ + {`REVOKE USAGE ON SCHEMA public FROM readonly_user;`} + +
+ + +
+اگر بخواهید کاربری را به طور کامل حذف کنید، باید ابتدا اطمینان حاصل کنید که دسترسی‌های او حذف شده است. سپس می‌توانید کاربر را با استفاده از دستور DROP ROLE حذف کنید. +برای حذف کاربر می‌توانید مشابه دستور زیر، عمل کنید: + + +
+
+ + {`DROP ROLE readonly_user;`} + +
+ + \ No newline at end of file