Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да дадете всички привилегии на база данни в MySQL

За да започнете да редактирате привилегиите в MySQL, първо трябва да влезете във вашия сървър и след това да се свържете с mysql клиент. Обикновено ще искате да се свържете с root или който и да е акаунтът ви е основен, първоначален акаунт на „суперпотребител“, който има пълен достъп през цялата инсталация на MySQL.

Обикновено root потребителят ще получи парола за удостоверяване при инсталиране на MySQL, но ако това не е така, трябва да предприемете стъпки за повишаване на сигурността си, като добавите root пароли, както е илюстрирано в официалната документация.

Свързване с инструмента за команден ред MySQL

За този пример ще приемем root е основният акаунт в MySQL. За да започнете да използвате инструмента за команден ред MySQL (mysqlcli ), свържете се с вашия сървър като root потребител, след което пуснете mysql команда:

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>

Ако успеете, ще видите някакъв изход за вашата MySQL връзка и ще бъдете обърнати надолу към mysql подкана.

Забележка:В случай, че не можете да се свържете директно със сървъра като root потребител преди да се свърже с mysql , можете да посочите потребителя, който искате да свържете като като добавите --user= флаг:

$ mysql --user=username

Предоставяне на привилегии

Сега, когато сте в mysqlcli подкана, трябва само да издадете GRANT команда с необходимите опции, за да приложите съответните разрешения.

Типове привилегии

GRANT командата е в състояние да прилага голямо разнообразие от привилегии, всичко от възможността за CREATE таблици и бази данни, четете или пишете FILES и дори SHUTDOWN сървърът. Има широк набор от флагове и опции, достъпни за командата, така че може да пожелаете да се запознаете с това какво GRANT всъщност можете да направите, като прегледате официалната документация.

Привилегии, специфични за базата данни

В повечето случаи ще предоставяте привилегии на потребителите на MySQL въз основа на конкретната database този акаунт трябва да има достъп до. Това е обичайна практика, например, за всяка уникална MySQL database на сървър, за да има свой собствен уникален user свързан с него, така че само един единствен user има достъп за удостоверяване до една единствена database и обратно.

За GRANT ALL привилегии на user , което позволява на този потребител пълен контрол върху конкретна database , използвайте следния синтаксис:

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

С тази команда казахме на MySQL да:

  • GRANT PRIVILEGES от тип ALL (така всичко разбира се). Забележка:Повечето съвременни инсталации на MySQL не изискват незадължителните PRIVILEGES ключова дума.
  • Тези привилегии са за database_name и се отнася за всички таблици на тази база данни, която е обозначена с .* това следва.
  • Тези привилегии се присвояват на username когато това username е свързан чрез локално, както е посочено от @'localhost' . За да посочите валиден хост, заменете 'localhost' с '%' .

Вместо да предоставяте всички привилегии на цялата база данни, може би искате да дадете tolkien възможността само за потребителя да чете данни (SELECT ) от authors таблица на books база данни. Това би било лесно да се постигне така:

mysql> GRANT ALL PRIVILEGES ON books.authors  TO 'tolkien'@'localhost';

Създаване на друг супер потребител

Въпреки че не е особено защитен, в някои случаи може да пожелаете да създадете друг „супер потребител“, който има ВСИЧКИ привилегии във ВСИЧКИ бази данни на сървъра. Това може да се извърши подобно на по-горе, но чрез замяна на database_name със заместващата звездичка:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';

Сега tolkien има същите привилегии като root по подразбиране акаунт, внимавайте!

Запазване на вашите промени

Като последна стъпка след всички актуализации на привилегиите на потребителя, не забравяйте да запазите промените, като издадете FLUSH PRIVILEGES команда от mysql подкана:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. В SQL, как да изберете горните 2 реда за всяка група

  2. Създайте MySQL база данни от Java

  3. #1071 - Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 1000 байта

  4. Как да получите списък с дати между две дати в заявката за избор на mysql

  5. Възстановяване на изтрития 'root' потребител и парола за MySQL