Сервер MySQL — это система управления реляционными базами данных с открытым исходным кодом, которая является основной поддержкой веб-приложений. Базы данных и связанные с ними таблицы являются основным компонентом многих веб-сайтов и приложений, поскольку данные хранятся и обмениваются ими через Интернет. Для доступа к базам данных MySQL с веб-сервера мы используем различные модули на Python, такие как PyMySQL, mysql.connector и т.д.
В этой статье мы собираемся предоставить пользователю разрешения на доступ к базе данных и ее таблицам MySQL. Инструкция CREATE USER создает учетную запись пользователя без привилегий. Инструкция по созданию пользователя в MySQL приведена ниже.
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
Вышеуказанный пользователь может войти на сервер MySQL, но не может ничего делать, например, запрашивать данные и выбирать базу данных из таблиц. В нашем случае, имя пользователя, и Пароль для входа в систему это 1234.
Чтобы изменить пользователя в клиенте MySQL, используйте приведенную ниже команду:
SYSTEM MYSQL -u geeksforgeeks -p1234;
Чтобы проверить текущего пользователя, можно воспользоваться приведенной ниже командой:
SELECT user();
Приведенное выше утверждение может быть использовано для определения разрешений пользователя.
SHOW GRANTS FOR user_name@localhost;
См. Приведенный ниже пример:
Примечание: Для предоставления разрешений пользователю вундеркинды-форджески вы должны войти в учетная запись root. Пользователи не могут предоставлять разрешения самим себе.
Ниже приведена программа на python для добавления разрешений для таблиц и столбцов пользователю вундеркинды:
# import required module
import pymysql
# establish connection to MySQL
connection = pymysql.connect(
# specify host
host='localhost',
# specify root account
user='root',
# specify password for root account
password='1234',
# default port number is 3306 fro MySQL
port=3306
)
# make a cursor to run sql queries
mycursor = connection.cursor()
# granting all permissions on all databases and their
# tables of geeksforgeeks user permission also includes
# table and column grants
mycursor.execute("Grant all on *.* to geeksforgeeks@localhost")
# print all privileges of geeksforgeeks user
mycursor.execute("Show grants for geeksforgeeks@localhost")
result = mycursor.fetchall()
print(result)
# commit privileges
mycursor.execute("Flush Privileges")
# close connection to MySQL
connection.close()
Выход
Терминал MySQL
Мы могли видеть, что разрешения на Создать и изменять Таблицы MySQL были предоставлены пользователю вундеркинды.