'\" t .\" Title: createuser .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026 .\" Manual: PostgreSQL 18.6 Documentation .\" Source: PostgreSQL 18.6 .\" Language: English .\" .TH "CREATEUSER" "1" "2026" "PostgreSQL 18.6" "PostgreSQL 18.6 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" createuser \- تعریف یک حساب کاربری جدید در PostgreSQL .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBcreateuser\fR\ 'u \fBcreateuser\fR [\fIconnection\-option\fR...] [\fIoption\fR...] [\fIusername\fR] .SH "توضیحات (DESCRIPTION)" .PP دستور createuser یک کاربر (یا به‌طور دقیق‌تر، یک نقش) جدید در PostgreSQL ایجاد می‌کند\&. تنها ابرکاربران و کاربرانی با امتیاز CREATEROLE می‌توانند کاربران جدید بسازند، بنابراین createuser باید توسط فردی فراخوانی شود که امکان اتصال به عنوان ابرکاربر یا کاربری با امتیاز CREATEROLE را داشته باشد\&. .PP اگر می‌خواهید نقشی با امتیازهای SUPERUSER، REPLICATION یا BYPASSRLS ایجاد کنید، باید حتماً به عنوان یک ابرکاربر متصل شوید، نه فقط با امتیاز CREATEROLE\&. ابرکاربر بودن به معنای توانایی دور زدن تمامی بررسی‌های مجوز دسترسی در پایگاه‌داده است، بنابراین دسترسی ابرکاربر نباید به‌سادگی اعطا شود\&. امتیاز CREATEROLE نیز اختیارات بسیار گسترده‌ای در بر دارد\&. .PP دستور createuser یک پوسته روی دستور SQL یعنی \fBCREATE ROLE\fR است\&. بین ایجاد کاربران از طریق این ابزار و سایر روش‌های دسترسی به سرور هیچ تفاوت عملی وجود ندارد\&. .SH "گزینه‌ها (OPTIONS)" .PP دستور createuser آرگومان‌های خط فرمان زیر را می‌پذیرد: .PP \fIusername\fR .RS 4 نام کاربر PostgreSQL ایجادشونده را مشخص می‌کند\&. این نام باید با تمام نقش‌های موجود در این نصب از PostgreSQL متفاوت باشد\&. .RE .PP \fB\-a \fR\fB\fIrole\fR\fR .br \fB\-\-with\-admin=\fR\fB\fIrole\fR\fR .RS 4 یک نقش موجود را مشخص می‌کند که به‌طور خودکار به عنوان عضو نقش جدید همراه با گزینه admin اضافه خواهد شد، و به آن این حق را می‌دهد که عضویت در نقش جدید را به دیگران نیز اعطا کند\&. با نوشتن چندباره گزینه \fB\-a\fR می‌توان چندین نقش موجود را مشخص کرد\&. .RE .PP \fB\-c \fR\fB\fInumber\fR\fR .br \fB\-\-connection\-limit=\fR\fB\fInumber\fR\fR .RS 4 حداکثر تعداد اتصال‌ها را برای کاربر جدید تعیین می‌کند\&. حالت پیش‌فرض، عدم تعیین محدودیت است\&. .RE .PP \fB\-d\fR .br \fB\-\-createdb\fR .RS 4 به کاربر جدید اجازه داده می‌شود که پایگاه‌های داده ایجاد کند\&. .RE .PP \fB\-D\fR .br \fB\-\-no\-createdb\fR .RS 4 به کاربر جدید اجازه ایجاد پایگاه‌های داده داده نخواهد شد\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-e\fR .br \fB\-\-echo\fR .RS 4 دستوراتی را که createuser تولید کرده و به سرور ارسال می‌کند، نمایش می‌دهد (echo)\&. .RE .PP \fB\-E\fR .br \fB\-\-encrypted\fR .RS 4 این گزینه منسوخ شده است اما هنوز جهت سازگاری با گذشته پذیرفته می‌شود\&. .RE .PP \fB\-g \fR\fB\fIrole\fR\fR .br \fB\-\-member\-of=\fR\fB\fIrole\fR\fR .br \fB\-\-role=\fR\fB\fIrole\fR\fR (منسوخ‌شده) .RS 4 مشخص می‌کند که نقش جدید باید به‌طور خودکار به عنوان عضوی از نقش موجودِ تعیین‌شده اضافه شود\&. با نوشتن چندباره گزینه \fB\-g\fR می‌توان چندین نقش موجود را مشخص کرد\&. .RE .PP \fB\-i\fR .br \fB\-\-inherit\fR .RS 4 نقش جدید به‌طور خودکار امتیازهای نقش‌هایی را که عضو آن‌ها است به ارث می‌برد\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-I\fR .br \fB\-\-no\-inherit\fR .RS 4 نقش جدید به‌طور خودکار امتیازهای نقش‌هایی را که عضو آن‌ها است به ارث نخواهد برد\&. .RE .PP \fB\-\-interactive\fR .RS 4 در صورتی که هیچ نام کاربری در خط فرمان مشخص نشده باشد، آن را درخواست می‌کند؛ همچنین در صورت مشخص نشدن هر یک از گزینه‌های \fB\-d\fR/\fB\-D\fR، \fB\-r\fR/\fB\-R\fR یا \fB\-s\fR/\fB\-S\fR در خط فرمان، اعلان درخواست را نمایش می‌دهد\&. (این رفتار پیش‌فرض تا نسخه PostgreSQL 9\&.1 بود\&.) .RE .PP \fB\-l\fR .br \fB\-\-login\fR .RS 4 به کاربر جدید اجازه ورود داده می‌شود (یعنی از نام کاربری می‌توان به عنوان شناسه کاربر اولیه نشست استفاده کرد)\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-L\fR .br \fB\-\-no\-login\fR .RS 4 به کاربر جدید اجازه ورود داده نخواهد شد\&. (یک نقش بدون امتیاز ورود همچنان به عنوان ابزاری برای مدیریت مجوزهای پایگاه‌داده مفید است\&.) .RE .PP \fB\-m \fR\fB\fIrole\fR\fR .br \fB\-\-with\-member=\fR\fB\fIrole\fR\fR .RS 4 یک نقش موجود را مشخص می‌کند که به‌طور خودکار به عنوان عضو نقش جدید اضافه خواهد شد\&. با نوشتن چندباره گزینه \fB\-m\fR می‌توان چندین نقش موجود را مشخص کرد\&. .RE .PP \fB\-P\fR .br \fB\-\-pwprompt\fR .RS 4 در صورت تعیین، createuser اعلانی برای دریافت گذرواژه کاربر جدید نمایش می‌دهد\&. اگر قصد استفاده از احراز هویت با گذرواژه را ندارید، نیازی به این گزینه نیست\&. .RE.PP \fB\-r\fR .br \fB\-\-createrole\fR .RS 4 کاربر جدید مجاز خواهد بود نقش‌های دیگر را ایجاد، ویرایش یا حذف کرده، برای آن‌ها یادداشت ثبت کند و برچسب امنیتی آن‌ها را تغییر دهد؛ به این معنی که این کاربر امتیاز CREATEROLE را خواهد داشت\&. برای جزئیات بیشتر دربارهٔ قابلیت‌هایی که توسط این امتیاز اعطا می‌شوند، بخش ایجاد نقش (role creation) را ببینید\&. .RE .PP \fB\-R\fR .br \fB\-\-no\-createrole\fR .RS 4 کاربر جدید مجاز به ایجاد نقش‌های جدید نخواهد بود\&. این مقدار پیش‌فرض است\&. .RE .PP \fB\-s\fR .br \fB\-\-superuser\fR .RS 4 کاربر جدید یک ابرکاربر (superuser) خواهد بود\&. .RE .PP \fB\-S\fR .br \fB\-\-no\-superuser\fR .RS 4 کاربر جدید یک ابرکاربر نخواهد بود\&. این مقدار پیش‌فرض است\&. .RE .PP \fB\-v \fR\fB\fItimestamp\fR\fR .br \fB\-\-valid\-until=\fR\fB\fItimestamp\fR\fR .RS 4 تعیین تاریخ و زمانی که پس از آن گذرواژهٔ نقش دیگر معتبر نیست\&. پیش‌فرض این است که هیچ تاریخ انقضایی برای گذرواژه تنظیم نشود\&. .RE .PP \fB\-V\fR .br \fB\-\-version\fR .RS 4 نسخهٔ createuser را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-bypassrls\fR .RS 4 کاربر جدید تمامی سیاست‌های امنیت در سطح سطر (RLS) را دور خواهد زد\&. .RE .PP \fB\-\-no\-bypassrls\fR .RS 4 کاربر جدید سیاست‌های امنیت در سطح سطر (RLS) را دور نخواهد زد\&. این مقدار پیش‌فرض است\&. .RE .PP \fB\-\-replication\fR .RS 4 کاربر جدید امتیاز REPLICATION را خواهد داشت که در مستندات CREATE ROLE (\fBCREATE_ROLE\fR(7)) به‌طور کامل‌تر شرح داده شده است\&. .RE .PP \fB\-\-no\-replication\fR .RS 4 کاربر جدید امتیاز REPLICATION را نخواهد داشت که در مستندات CREATE ROLE (\fBCREATE_ROLE\fR(7)) به‌طور کامل‌تر شرح داده شده است\&. این مقدار پیش‌فرض است\&. .RE .PP \fB\-?\fR .br \fB\-\-help\fR .RS 4 راهنمایی دربارهٔ آرگومان‌های خط فرمان createuser را نمایش داده و خارج می‌شود\&. .RE .PP دستور createuser همچنین آرگومان‌های خط فرمان زیر را برای پارامترهای اتصال می‌پذیرد: .PP \fB\-h \fR\fB\fIhost\fR\fR .br \fB\-\-host=\fR\fB\fIhost\fR\fR .RS 4 نام میزبان (host name) ماشینی که سرور روی آن در حال اجراست را مشخص می‌کند\&. اگر مقدار با یک ممیز (اسلش) آغاز شود، به‌عنوان مسیر پوشه برای سوکت دامنهٔ یونیکس (Unix domain socket) استفاده می‌شود\&. .RE .PP \fB\-p \fR\fB\fIport\fR\fR .br \fB\-\-port=\fR\fB\fIport\fR\fR .RS 4 درگاه TCP یا پسوند فایل سوکت محلی دامنهٔ یونیکس را که سرور روی آن به اتصالات گوش می‌دهد، مشخص می‌کند\&. .RE .PP \fB\-U \fR\fB\fIusername\fR\fR .br \fB\-\-username=\fR\fB\fIusername\fR\fR .RS 4 نام کاربری برای برقراری اتصال (نه نام کاربری که قرار است ایجاد شود)\&. .RE .PP \fB\-w\fR .br \fB\-\-no\-password\fR .RS 4 هرگز اعلان درخواست گذرواژه نمایش داده نشود\&. اگر سرور نیاز به احراز هویت با گذرواژه داشته باشد و گذرواژه از روش‌های دیگری مانند یک فایل \&.pgpass در دسترس نباشد، تلاش برای اتصال ناموفق خواهد بود\&. این گزینه می‌تواند در کارهای دسته‌ای (batch jobs) و اسکریپت‌هایی که هیچ کاربری برای وارد کردن گذرواژه حضور ندارد مفید باشد\&. .RE .PP \fB\-W\fR .br \fB\-\-password\fR .RS 4 برنامهٔ createuser را وادار می‌کند تا برای گذرواژه اعلان بدهد (برای اتصال به سرور، نه برای گذرواژهٔ کاربر جدید)\&. .sp این گزینه هرگز ضروری نیست، چرا که اگر سرور نیازمند احراز هویت با گذرواژه باشد، createuser به‌طور خودکار اعلان گذرواژه را نمایش خواهد داد\&. با این حال، createuser یک تلاش اتصال را برای پی بردن به این‌که سرور گذرواژه می‌خواهد هدر خواهد داد\&. در برخی موارد نوشتن \fB\-W\fR برای جلوگیری از این تلاش اتصال اضافه، ارزشش را دارد\&. .RE.SH "محیط (ENVIRONMENT)" .PP \fBPGHOST\fR .br \fBPGPORT\fR .br \fBPGUSER\fR .RS 4 پارامترهای اتصال پیش‌فرض .RE .PP \fBPG_COLOR\fR .RS 4 مشخص می‌کند که آیا در پیام‌های عیب‌یابی از رنگ استفاده شود یا خیر\&. مقادیر ممکن عبارتند از always، auto و never\&. .RE .PP این ابزار، مانند بیشتر ابزارهای دیگر PostgreSQL، همچنین از متغیرهای محیطی پشتیبانی‌شده توسط libpq استفاده می‌کند (به بخش\ \&32.15 مراجعه کنید)\&. .SH "خطاها (DIAGNOSTICS)" .PP در صورت بروز مشکل، برای بررسی مسائل احتمالی و پیام‌های خطا، به CREATE ROLE (\fBCREATE_ROLE\fR(7)) و \fBpsql\fR(1) مراجعه کنید\&. سرور پایگاه‌داده باید روی میزبان هدف در حال اجرا باشد\&. همچنین، تمام تنظیمات پیش‌فرض اتصال و متغیرهای محیطی مورد استفاده توسط کتابخانهٔ فرانت‌اند libpq اعمال خواهند شد\&. .SH "مثال‌ها (EXAMPLES)" .PP برای ایجاد یک کاربر joe روی سرور پایگاه‌داده پیش‌فرض: .sp .if n \{\ .RS 4 .\} .nf $ \fBcreateuser joe\fR .fi .if n \{\ .RE .\} .PP برای ایجاد کاربر joe روی سرور پایگاه‌داده پیش‌فرض با اعلان درخواست تعاملی برای برخی ویژگی‌های اضافی: .sp .if n \{\ .RS 4 .\} .nf $ \fBcreateuser \-\-interactive joe\fR Shall the new role be a superuser? (y/n) \fBn\fR Shall the new role be allowed to create databases? (y/n) \fBn\fR Shall the new role be allowed to create more new roles? (y/n) \fBn\fR .fi .if n \{\ .RE .\} .PP برای ایجاد همان کاربر joe با استفاده از سرور روی میزبان eden، درگاه 5000، با ویژگی‌هایی که صراحتاً تعیین شده‌اند، همراه با مشاهدهٔ دستور زیربنایی: .sp .if n \{\ .RS 4 .\} .nf $ \fBcreateuser \-h eden \-p 5000 \-S \-D \-R \-e joe\fR CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; .fi .if n \{\ .RE .\} .PP برای ایجاد کاربر joe به‌عنوان مدیر سیستم (superuser) و تخصیص آنی یک گذرواژه: .sp .if n \{\ .RS 4 .\} .nf $ \fBcreateuser \-P \-s \-e joe\fR Enter password for new role: \fBxyzzy\fR Enter it again: \fBxyzzy\fR CREATE ROLE joe PASSWORD \*(AqSCRAM\-SHA\-256$4096:44560wPMLfjqiAzyPDZ/eQ==$4CA054rZlSFEq8Z3FEhToBTa2X6KnWFxFkPwIbKoDe0=:L/nbSZRCjp6RhOhKK56GoR1zibCCSePKshCJ9lnl3yw=\*(Aq SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS; .fi .if n \{\ .RE .\} .sp در مثال بالا، گذرواژهٔ جدید هنگام تایپ عملاً نمایش داده نمی‌شود، اما برای وضوح بیشتر، آنچه تایپ شده نشان داده شده است\&. همان‌طور که می‌بینید، گذرواژه پیش از ارسال به کلاینت رمزنگاری می‌شود\&..SH "همچنین ببینید (SEE ALSO)" \fBdropuser\fR(1), CREATE ROLE (\fBCREATE_ROLE\fR(7)), createrole_self_grant