امیر رحیمی نژاد
امیر رحیمی نژاد
خواندن ۲ دقیقه·۴ سال پیش

ایجاد کاربر برای MySql در لینوکس

پس از ورود به MySql CLIبا دستور زیر :

$ mysql -u root -p

پس از ورود به mysql cli میتوان کاربر دلخواه را اضافه نمود . به شکل زیر :

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

میتوان این دستور یک کاربر برای localhost (هاست جاری) ایجاد میکند. به این مفهوم که این کاربر از خارج از این ماشین امکان دسترسی به Mysql را نخواهد داشت.

درصورتیکه بخواهیم کاربری از یک آدرس خاص به این mysql متصل شود به شکل زیر کاربر تعریف میکنیم :

CREATE USER 'username'@'ip_address' IDENTIFIED BY 'password';

جای ip_address باید آی پی دستگاهی که میخواهد به سرور متصل شود را مشخص نمود.

اگر بخواهیم کاربری از خارج به صورت remote به سرور Mysql متصل شود بدون محدودیت آی پی و آدرسش کاربر را به صورت زیر تعریف میکنیم:

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

تا اینجای کار توانستیم کاربر مورد نظر را برای MySql تعریف کنیم اما هنوز مشخص نکرده ایم که کاربر چه دسترسی هایی به دیتابیسهای ما داشته باشد. برای این کار از ساختار دستوری زیر استفاده میکنیم :

GRANT permission_type ON database.table TO 'username'@'localhost';

برای در این ساختار در بخش permission _type باید مشخص کنیم چه نوع دسترسی قرار است به کاربر بدهیم و در بخش دوم مشخص میکنیم روی کدام دیتابیس و جدول این مجوز را اعمال میکنیم و در آخر مشخص میکنیم این دسترسی برای کدام کاربر است.

انواع prtmissio_type ها به شرح زیر است :

  • All Privileges: The user account has full access to the database
  • Insert: The user can insert rows into tables
  • Delete: The user can remove rows from tables
  • Create: The user can create entirely new tables and databases
  • Drop: The user can drop (remove) entire tables and databases
  • Select: The user gets access to the select command, to read the information in the databases
  • Update: The user can update table rows

به مثال های زیر توجه کنید :

GRANT INSERT database_name.* TO 'username'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; GRANT ALL PRIVILEGES ON database_name.table_name TO 'username'@'localhost';

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

در دستور دوم دسترسی کامل به همه دیتابیسها و جداول آنها به کاربر داده شده

در دستور سوم دسترسی کامل به یک جدول از دیتابیس به کاربر داده شده

در نهایت پس از تعییندسترسی های کاربر حتما یک بار دستور زیر را اجرا نمایید تا تغییرات به سرعت در سرور اعمال شود:

FLUSH PRIVILEGES;


در این مطلب سعی کردم به شکل ساده ایجاد کاربر و دسترسی های کاربر را بیان کنم. نکات دیگری به ویژه در خصوص دسترسی های کاربر به صورت ریموت و مدیریت کاربران وجود دارد که با یک سرچ ساده قابل دستیابی است.

mysql
برنامه نویس کامپیوتر ، مدیر پروژه و سرمایه گذار بازارهای مالی (فارکس ، بورس و ...)
شاید از این پست‌ها خوشتان بیاید