MySQL е популярна и широко използвана система за управление на база данни, която съхранява и организира данни и позволява на потребителите да ги извличат. Предлага се с огромен набор от опции, които предоставят на потребителите определени разрешения за таблици и бази данни.
В това ръководство ще научите как да създадете нов потребител и да предоставите разрешения в MySQL база данни.
Как да създадете нов потребител в MySQL
За да създадете нов потребител, първо влезте в обвивката на MySQL.
$ sudo mysql -u root -p
Въведете паролата sudo, последвана от паролата, предоставена при настройката на базата данни MySQL и натиснете ENTER . След това ще получите тази подкана.
За да създадете нов потребител, използвайте синтаксиса, показан по-долу:
MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Например, за да създадете нов потребител, наречен „tecmint ’ в базата данни, извикайте командата:
MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';
Няколко точки, които трябва да имате предвид
Когато добавяте потребител локално, т.е. в системата, която сте инсталирали MySQL , хостът на потребителя е посочен като localhost , а не IP адреса. Ключовата дума „localhost ‘ се превежда като „този компютър “ и MySQL го третира уникално. По принцип localhost се използва от mysql клиента за установяване на връзка с локално инсталирания MySQL сървър на база данни.
Досега текминтът потребителят няма никакви разрешения за взаимодействие с базите данни. Всъщност потребителят дори не може да получи достъп до обвивката на MySQL.
За да предоставите на потребителя пълен достъп до всички бази данни, включително таблиците, стартирайте.
MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';
В командата по-горе звездичките сочат съответно към базата данни и таблицата, до които потребителят има достъп. Той предоставя на потребителя всички права върху базата данни – четене ,пишете , редактиране, иизпълнение включително изпълнение на всички задачи и в други бази данни и таблици.
Досега предоставихме на потребителя пълен достъп до базата данни. Въпреки че това е удобно за обяснение на концепциите на MySQL, обикновено не се препоръчва, тъй като може да представлява риск за сигурността на вашите бази данни. Само си помислете какво може да се случи, ако хакер получи паролата на потребителя. Ще продължим по-нататък и ще обсъдим как да зададем конкретни разрешения в следващия раздел.
Когато приключите с присвояването на разрешения на потребителя, презаредете всички привилегии, както е показано, за да влязат в сила промените.
MariaDB [none]> FLUSH PRIVILEGES
Как да дадете различни потребителски разрешения
Ето разбивка на възможните разрешения, които можете да предоставите на потребителите:
- ВСИЧКИ ПРИВИЛЕГИИ – Както се видя по-рано, това предоставя на потребител на MySQL пълен достъп до конкретна база данни.
- СЪЗДАВАЙТЕ – Позволява на потребителите да създават нови бази данни или таблици.
- ИЗПУСКАНЕ – Позволява на потребителите да изтриват бази данни или потребители.
- ВМЪКНЕТЕ – Позволява на потребителите да вмъкват редове в таблици.
- ИЗТРИВАНЕ – Позволява на потребителите да изтриват редове от таблици.
- ИЗБЕРЕТЕ – с разрешение „SELECT“, потребителите могат да четат съдържанието на таблица.
- АКТУАЛИЗИРАНЕ – Позволява на потребителите да актуализират редовете в таблица.
- ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ – Потребителите могат да предоставят или премахват привилегиите на други потребители.
За да предоставите конкретно потребителско разрешение, използвайте синтаксиса:
MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';
Освен това можете да зададете разрешения на всички таблици в база данни с един символ на звездичка, както е показано:
MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';
Например, за да зададете SELECT разрешения за „tecmint ‘ потребител на всички таблици на базата данни testdb , изпълнете командата.
MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';
След това изтрийте привилегиите, за да влязат в сила промените.
MariaDB [none]> FLUSH PRIVILEGES;
Освен това можете да зададете няколко разрешения наведнъж, като ги разделите със запетая, както е показано.
MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';
Как да отменя разрешенията за MySQL
За да отмените разрешенията от потребител, използвайте синтаксиса:
MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';
Например за отмяна на INSERT разрешения от потребителя „tecmint “, изпълнете командата.
MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost'; MariaDB [none]> FLUSH PRIVILEGES
За да надникнете в текущите разрешения на потребителя, изпълнете:
MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';
От изхода по-долу можем да видим, че INSERT разрешението е изтрито от „tecmint ’ потребител оставя само ИЗБИРАНЕ и АКТУАЛИЗИРАНЕ права върху testdb база данни.
За да изпробвате влизането в обвивката на MySQL с помощта на новия потребител, първо излезте.
MariaDB [none]> quit;
След това влезте отново.
$ sudo mysql -u tecmint -p
Посочете паролата на потребителя и натиснете ENTER за достъп до обвивката.
За да изключите потребител, използвайте DROP команда, точно както бихте направили при изтриване на база данни.
MariaDB [none]> DROP USER 'username'@'localhost';
Може също да искате да прочетете следните статии, свързани с MySQL:
- Полезни съвети за отстраняване на често срещани грешки в MySQL
- Mytop – полезен инструмент за наблюдение на производителността на MySQL/MariaDB в Linux
- Как да промените MySQL/MariaDB порт по подразбиране в Linux
- Как да нулирате MySQL или MariaDB Root парола в Linux
Заключение
Надяваме се, че вече можете да създавате потребители във вашите сървъри на база данни MySQL и удобно да назначавате или отменяте разрешения.