ایجاد و مدیریت کاربر جدید در دیتابیس Redis


Redis از سیستم کاربران و دسترسی‌های پیچیده پشتیبانی نمی‌کند. اما با استفاده از قابلیت ACL (Access Control List) از نسخه 6.0 به بعد، می‌توانید کاربران جدید ایجاد کنید و دسترسی‌های مختلف را تنظیم کنید.

برای ساخت کاربر جدید در دیتابیس، در ابتدا باید ابزار redis-cli را بر روی سیستم (یا سرور خود)، نصب کنید؛ در ادامه، بایستی با استفاده از اطلاعات موجود در بخش نحوه اتصال دیتابیس‌تان در لیارا و با استفاده از دستور زیر، در ترمینال، به redis متصل شوید:

کپی
redis-cli -h <host_name> -p <port> -a "<password>"

پس از اتصال موفق، می‌توانید با استفاده از دستورات تعریف شده در ادامه، کاربران مد نظر خود را، ایجاد کنید.

ساخت کاربر با دسترسی Read-Only

برای ایجاد کاربر جدید که تنها اجازه خواندن اطلاعات (READ) از دیتابیس را دارد، می‌توانید از دستور زیر استفاده کنید:

کپی
ACL SETUSER readonly_user on >password123 ~* +@read -@write

دستور فوق، یک کاربر با نام readonly_user و رمزعبور password123 با اجازه دسترسی به تمامی کلیدها (با استفاده از *~) و فقط اجازه خواندن آن‌ها (read+@) و منع تغییر آن‌ها (write-@)، ایجاد می‌کند. حال برای اتصال به redis با این کاربر ایجاد شده، می‌توانید از دستور زیر در ترمینال، استفاده کنید:

کپی
redis-cli -h fitz-roy.liara.cloud -p 30612 -a "password123" --user readonly_user

ساخت کاربر با دسترسی محدود به برخی کلیدها

در صورتی که بخواهید کاربری ایجاد کنید که فقط به کلیدهای مشخص دسترسی داشته باشد، می‌توانید مانند دستور زیر عمل کنید:

کپی
ACL SETUSER limited_user on >password456 ~user_* +@read +@write

دستور فوق، یک کاربر با نام limited_user و رمزعبور password456 با اجازه دسترسی به کلیدهایی که با _user شروع می‌شوند (با استفاده از *_user~) و اجازه خواندن آن‌ها (read+@) و تغییر آن‌ها (write+@)، ایجاد می‌کند. حال برای اتصال به redis با این کاربر ایجاد شده، می‌توانید از دستور زیر در ترمینال، استفاده کنید:

کپی
redis-cli -h fitz-roy.liara.cloud -p 30612 -a "password456" --user limited_user

ساخت کاربر برای تهیه فایل پشتیبان

برای ایجاد کاربر جدید که تنها اجازه تهیه فایل پشتیبان از دیتابیس را دارد، می‌توانید مانند دستور زیر عمل کنید:

کپی
ACL SETUSER backup_user on >password789 ~* +@admin

دستور فوق، یک کاربر با نام backup_user و رمزعبور password789 با اجازه دسترسی به همه کلیدها (با استفاده از *~) و اجازه دسترسی به دستورات مدیریتی مثل SAVE و BGSAVE (admin+@) ایجاد می‌کند.

حذف یک کاربر

برای حذف یک کاربر، می‌توانید از دستور ACL DELUSER استفاده کنید. به عنوان مثال، اگر بخواهید کاربری به نام readonly_user را حذف کنید، می‌توانید از دستور زیر استفاده کنید:

کپی
ACL DELUSER readonly_user

مدیریت کاربران

برای مشاهده لیست کاربران می‌توانید با دسترسی ادمین، از دستور زیر، استفاده کنید:

کپی
ACL LIST

برای بررسی دسترسی‌های یک کاربر خاص نیز، می‌توانید مانند قطعه کد زیر عمل کنید:

کپی
ACL GETUSER readonly_user

دستور فوق، دسترسی‌های کاربری به نام readonly_user را، نمایش می‌دهد.

ذخیره دائمی یک کاربر

در نهایت، برای ذخیره دائمی تغییرات اعمال شده بر روی کاربران (از جمله ایجاد، حذف یا تغییر دسترسی‌ها)، باید از دستور زیر استفاده کنید:

کپی
ACL SAVE

در نظر داشته باشید که تنها امکان ذخیره دائمی کاربر جدید در دیتابیس Redis نسخه 8.0 وجود دارد؛ در صورتی که از نسخه‌های دیگر استفاده می‌کنید؛ امکان ذخیره موقتی کاربر جدید تا زمان ری‌استارت شدن دیتابیس، وجود دارد.