From afcda8120aaa1ac23704baa37c40822304cfde8b Mon Sep 17 00:00:00 2001 From: "p.belezov" Date: Wed, 22 Jan 2025 17:19:58 +0800 Subject: [PATCH] MySQL users --- MySQL/users.md | 101 +++++++++++++++++++++++++++++++++++++++++++++++++ Readme.md | 3 +- 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 MySQL/users.md diff --git a/MySQL/users.md b/MySQL/users.md new file mode 100644 index 0000000..a11b235 --- /dev/null +++ b/MySQL/users.md @@ -0,0 +1,101 @@ +# MySQL users actions + +## Show users with hosts + +``` +SELECT User, Host FROM mysql.user; +``` + +## Check user privileges + +``` +SHOW GRANTS FOR 'someuser'@'somehost.somedomain'; +``` + +## Create user + +``` +CREATE USER 'some_user'@'somehost.somedomain' IDENTIFIED BY 'some_password'; +FLUSH PRIVILEGES; +``` + +## Delete user + +``` +DROP USER 'some_user'@'somehost.somedomain'; +FLUSH PRIVILEGES; +``` + +## Granting privileges + +### Grant all privileges + +``` +GRANT ALL PRIVILEGES ON *.* TO 'some_user'@'somehost.somedomain' WITH GRANT OPTION; +FLUSH PRIVILEGES; +``` + +### Grant privilege on database 'some_db' + +``` +GRANT SELECT ON `some_db`.* TO 'some_user'@'somehost.somedomain'; +FLUSH PRIVILEGES; +``` + +### Grant privilege on table 'some_db'.'some_table' + +``` +GRANT SELECT ON `some_db`.'some_table' TO 'some_user'@'somehost.somedomain'; +FLUSH PRIVILEGES; +``` + +### Grant privilege to select and update some columns on table 'some_db'.'some_table' + +``` +GRANT SELECT (id, some_column), UPDATE (some_column) ON `some_db`.`some_table` TO 'some_user'@'somehost.somedomain'; +``` + +### Grant with inheritance + +``` +GRANT SELECT, INSERT, UPDATE, DELETE ON `some_db`.* TO 'some_user'@'somehost' WITH GRANT OPTION; +FLUSH PRIVILEGES; +``` + +**'WITH GRANT OPTION'** makes it possible to convey to others what is permitted to oneself. + +## Revoking privileges + +### Revoke privilege to select from database 'somedb' + +``` +REVOKE SELECT ON `somedb`.* FROM 'someuser'@'somehost'; +FLUSH PRIVILEGES; +``` + +### Revoke all privileges from user + +``` +ALL PRIVILEGES ON *.* FROM 'someuser'@'somehost'; +FLUSH PRIVILEGES; +``` + +### Revoke all privileges to database 'somedb' from user + +``` +ALL PRIVILEGES ON `somedb`.* FROM 'someuser'@'somehost'; +FLUSH PRIVILEGES; +``` + +### Revoke all privileges from user + +``` +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'someuser'@'somehost'; +FLUSH PRIVILEGES; +``` + +## Change password + +``` +ALTER USER 'test_user'@'localhost' IDENTIFIED BY 'new_password'; +``` \ No newline at end of file diff --git a/Readme.md b/Readme.md index 899b44f..9e58f90 100644 --- a/Readme.md +++ b/Readme.md @@ -10,4 +10,5 @@ This is a repository with useful snippets of various kinds of code - - [certbot_nginx](./Linux/certbot_nginx.md) - [MySQL](./MySQL/) - - [all_foreign_keys_to_table_or_column](./MySQL/all_foreign_keys_to_table_or_column.md) -- - [identify_lock](./MySQL/identify_lock.md) \ No newline at end of file +- - [identify_lock](./MySQL/identify_lock.md) +- - [users](./MySQL/users.md) \ No newline at end of file