اطلاعیه

بستن
No announcement yet.

نحوه ایجاد/حذف کاربران در MySQL/MariaDB و مدیریت سطوح دسترسی

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نحوه ایجاد/حذف کاربران در MySQL/MariaDB و مدیریت سطوح دسترسی

    دیتابیس MySQL/MariaDB یکی از معروفترین سیستم های مدیریت Database میباشد. سرور دیتابیس مای اسکیول امکان ایجاد کاربران بیشماری را برای ما مهیا میکند و امکان اعطای دسترسی های مناسب و مختلف به منظور دسترسی و مدیریت دیتابیس ها را فراهم میآورد. در این مقاله ما نحوه ساخت، حذف و مدیریت یک یوزر در MySQL/MariaDB و نحوه اعطای سطوح دسترسی یک کاربر به دیتابیس را آموزش خواهیم داد.

    قبل از اینکه شروع کنیم، ما فرض را بر این میگذاریم که شما از قبل روی سیستم تان MySQL یا MariaDB را نصب کرده اید. همه دستورات درون shell مای اسکیول توسط کاربر root یا کاربر مدیر سرور قابل اجرا است. حداقل پرمیژن مورد نیاز برای ایجاد اکانت های کاربری و تعریف سطوح دسترسی آنها CREATE USER و GRANT هستند.


    همچنین توصیه میشود مطالعه کنید :

    آموزش نصب آخرین ورژن MariaDB 10 در CentOS 7/8 - RedHat 7/8 - Debian 8/9/10 - Ubuntu 16/18/19

    نحوه پیدا کردن مسیر my.cnf (فایل تنظیمات دیتابیس) در MySQL/MariaDB



    برای دسترسی به شل MySQL کافیست دستور زیر را وارد کنید، سپس پسورد کاربر root دیتابیس مای اسکیول را نیز بعد از اجرای دستور، تایپ نمایید.
    کد PHP:
    # mysql -u root -p 
    دستور وارد شدن به دیتابیس mysql و mariadb







    اگر شما برای کاربر root مای اسکیول پسوردی تعریف نکرده باشید، میتوانید آپشن -p را حذف کنید.



    نحوه لیست کردن یوزرهای ایجاد شده در MySQL/MariaDB

    در ابتدا برای مشاهده لیست یوزرها در MySQL/MariaDB از دستور زیر استفاده کنید.
    کد PHP:
    mysqlSELECT UserHostPassword FROM mysql.user
    در صورتی که فقط میخواهید ستون user ها را مشاهده کنید، از دستور زیر استفاده کنید.
    کد PHP:
    mysqlSELECT DISTINCT User FROM mysql.user
    نمایش لیست کاربران در mariadb و mysql










    نحوه ایجاد یک User جدید در MySQL/MariaDB

    یک کاربر در مای اسکیول شامل یک username و host name میباشد. برای ایجاد یک کاربر یا یوزر جدید در MySQL دستور زیر را اجرا کنید.
    کد PHP:
    mysqlCREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password'
    نکته : مقدار newuser را با نام کاربر جدید مد نظرتان جایگزین کنید، همچنین مقدار user_password را با پسورد کاربر جایگزین کنید.

    در دستور بالا بخش hostname برابر با localhost تعریف شده است که این به این معناست که کاربر قادر به اتصال به سرور دیتابیس MySQL تنها از طریق localhost (سیستمی که دیتابیس MySQL/MariaDB روی آن در حال اجرا میباشد) میباشد.

    برای اعطای دسترسی از یک هاست دیگر مقدار hostname را که برابر با localhost است با ip ماشین ریموت جابجا کنید. به طور مثال برای دسترسی از ماشینی با ip آدرس 10.8.0.5 به سرور MySQL خود، شما باید دستور زیر را اجرا کنید.
    کد PHP:
    mysqlCREATE USER 'newuser'@'10.8.0.5' IDENTIFIED BY 'user_password'
    برای ایجاد یک کاربری که بتواند از هر هاستی به سرور دیتابیس MySQL متصل شود، باید در بخش هاست از عبارت % همانند زیر استفاده کنید.
    کد PHP:
    mysqlCREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password'


    اعطای سطوح دسترسی (Grant Privileges) به یک کاربر در MySQL/MariaDB

    انواع زیادی از سطوح دسترسی وجود دارد که میتوان به یک کاربر اختصاص داد. شما میتوانید لیست کاملی از سطوح دسترسی که توسط MySQL پشتیبانی میشود را در اینجا مشاهده کنید.

    رایج ترین سطوح دسترسی مورد استفاده :

    ALL PRIVILEGES : اعطای همه دسترسی ها به یک کاربر
    CREATE : کاربر مجاز به ایجاد دیتابیس و تیبل ها میباشد
    DROP : کاربر مجاز به حذف دیتابیس و جداول میباشد
    DELETE : کاربر مجاز به حذف ردیف ها از یک جدول خاص میباشد
    INSERT : کاربر مجاز به وارد کردن اطلاعات به ردیف ها به یک جدول خاص میباشد
    SELECT : کاربر مجاز به خواندن اطلاعات یک دیتابیس میباشد
    UPDATE : کاربر مجاز به آپدیت ردیف های جدول میباشد


    همچنین توصیه میشود مطالعه کنید :

    آموزش کامل دستورات پایه ای MySQL/MariaDB


    برای اعطای دسترسی خاص به یک کاربر شما میتوانید از ساختار زیر استفاده کنید.
    کد PHP:
    mysqlGRANT permission1permission2 ON database_name.table_name TO 'database_user'@'localhost'
    شما میتوانید به جای permission از سطوح دسترسی که در بالا شرح داده شد، استفاده کنید. در اینجا یکسری مثال ها را مشاهده میکنید.


    اعطای تمام سطوح دسترسی به یک کاربر روی یک دیتابیس خاص
    کد PHP:
    mysqlGRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost'


    اعطای تمام دسترسی ها به یک کاربر روی همه دیتابیس ها
    کد PHP:
    mysqlGRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost'


    اعطای همه دسترسی ها به یک کاربر روی یک جدول خاص از یک دیتابیس
    کد PHP:
    mysqlGRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost'


    اعطای چندین سطوح دسترسی به یک کاربر روی یک دیتابیس خاص
    کد PHP:
    mysqlGRANT SELECTINSERTDELETE ON database_name.* TO database_user@'localhost'


    مشاهده سطوح دسترسی یک کاربر در MySQL/MariaDB

    برای پیدا کردن سطوح دسترسی که به یک کاربر در MySQL اختصاص داده شده از دستور show grants همانند زیر استفاده میکنیم.
    کد PHP:
    mysqlSHOW GRANTS FOR 'database_user'@'localhost'
    نمایش سطوح دسترسی یک کاربر در دیتابیس mysql/mariadb










    نحوه لغو دسترسی های یک کاربر در MySQL/MariaDB

    ساختار مربوط به لغو یا حذف یک یا چندین پرمیژن از یک کاربر همانند آنچه که در هنگام اعطای پرمیژن بیان کردیم میباشد. به عنوان مثال برای حذف همه پرمیژن های یک کاربر روی یک دیتابیس خاص از دستور زیر استفاده میکنیم.
    کد PHP:
    mysqlREVOKE ALL PRIVILEGES ON database_name.* FROM 'database_user'@'localhost'


    نحوه حذف یک کاربر موجود در MySQL/MariaDB

    برای حذف یک یوزر در مای اسکیول از دستور drop user استفاده میکنیم.
    کد PHP:
    mysqlDROP USER 'user'@'localhost'
    دستور بالا کاربر مورد نظر و پرمیژن هایش را حذف خواهد کرد. برای حذف چندین کاربر به صورت همزمان در MySQL/MariaDB از دستور زیر استفاده کنید.
    کد PHP:
    mysqlDROP USER 'user1@localhost' 'user2@localhost'
    برای مطمئن شدن از حذف کاربر، همانند دستور SELECT User, Host, Password FROM mysql.user که در بالا شرح داده شد، لیست کاربران را مشاهده میکنیم.
    نحوه حذف یک کاربر از دیتابیس mysql و mariadb








    نتیجه :

    در این مقاله ما تنها مطالب پایه را بررسی کردیم که میتوانند برای هر کسی که میخواهد در مورد ایجاد کاربران MySQL/MariaDB و اعطای سطوح دسترسی به آنها بیشتر بداند شروع خوبی باشد. اگر شما هر سوال یا نظری دارید آن را با ما به اشتراک بگذارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 04-17-2020, 07:41 AM.
در حال انجام ...
X