MySQL创建用户与授权
- 格式:docx
- 大小:22.51 KB
- 文档页数:3
mysql创建⽤户命令-grant我们在使⽤mysql的过程中,经常需要对⽤户授权(添加,修改,删除),在mysql当中有三种⽅式实现分别是 INSERT USER表的⽅法、CREATE USER的⽅法、GRANT的⽅法。
今天主要看⼀下grant⽅法是如何实现的分两种情况,第⼀种先使⽤create user命令创建⽤户,然后grant授权;第⼆种直接使⽤grant创建并授权;我们先看第⼀种如何实现查看⽤户权限show grants for 你的⽤户⽐如:show grants for root@'localhost';⼀. 创建⽤户命令:CREATE USER'username'@'host' IDENTIFIED BY'password';说明:username:你将创建的⽤户名host:指定该⽤户在哪个主机上可以登陆,如果是本地⽤户可⽤localhost,如果想让该⽤户可以从任意远程主机登陆,可以使⽤通配符%password:该⽤户的登陆密码,密码可以为空,如果为空则该⽤户可以不需要密码登陆服务器例⼦:CREATE USER'dog'@'localhost' IDENTIFIED BY'123456';CREATE USER'pig'@'192.168.1.101_' IDENDIFIED BY'123456';CREATE USER'pig'@'%' IDENTIFIED BY'123456';CREATE USER'pig'@'%' IDENTIFIED BY'';CREATE USER'pig'@'%';⼆. 授权:命令:GRANT privileges ON databasename.tablename TO'username'@'host'说明:privileges:⽤户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使⽤ALLdatabasename:数据库名tablename:表名,如果要授予该⽤户对所有数据库和表的相应操作权限则可⽤*表⽰,如*.*例⼦:GRANT SELECT, INSERT ON er TO'pig'@'%';GRANT ALL ON*.*TO'pig'@'%';上⾯的第⼀⾏代码表⽰在test库中的user 授权pid⽤户,授权插⼊和选择操作;第⼆⾏表⽰授权pid⽤户可以操作所有的权限;注意:⽤以上命令授权的⽤户不能给其它⽤户授权,如果想让该⽤户可以授权,⽤以下命令:GRANT privileges ON databasename.tablename TO'username'@'host'WITH GRANT OPTION;三.设置与更改⽤户密码SET PASSWORD FOR'username'@'host'= PASSWORD('newpassword');如果是当前登陆⽤户⽤:SET PASSWORD = PASSWORD("newpassword");例⼦:SET PASSWORD FOR'pig'@'%'= PASSWORD("123456");四. 撤销⽤户权限命令:REVOKE privilege ON databasename.tablename FROM'username'@'host';说明:privilege, databasename, tablename:同授权部分例⼦:REVOKE SELECT ON*.*FROM'pig'@'%';注意:假如你在给⽤户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON er TO 'pig'@'%',则在使⽤REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该⽤户对test数据库中user表的SELECT 操作。
mysql创建⼀个⽤户,指定⼀个数据库,表读写权限1.远程登录mysqlmysql -h ip -u root -p 密码2.创建⽤户格式:grant 权限 on 数据库.* to ⽤户名@登录主机 identified by “密码”;例1:增加⼀个test1⽤户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能。
需要在mysql的root⽤户下进⾏mysql>grant select,insert,update,delete on *.* to test1@”%” identified by “123456″;mysql>flush privileges;例2:增加⼀个test2⽤户,密码为123456,只能在192.168.2.12上登录,并对数据库student有查询,增加,修改和删除的功能。
需要在mysql的root⽤户下进⾏mysql>grant select,insert,update,delete on student.* to test2@192.168.2.12 identified by “123456″;mysql>flush privileges;例3:授权⽤户test3拥有数据库student的所有权限mysql>grant all privileges on student.* to test3@localhost identified by ’123456′;mysql>flush privileges;3.修改⽤户密码mysql>update er set password=password(’123456′) where User=’test1′ and Host=’localhost’;mysql>flush privileges;4.删除⽤户mysql>delete from user where user=’test2′ and host=’localhost’;mysql>flush privileges;5.删除数据库和删除表mysql>drop database 数据库名;mysql>drop table 表名;6.删除账户及权限drop user ⽤户名@’%’drop user ⽤户名@localhost**************************************************************************************grant 详细解析如下:**************************************************************************************MySQL 赋予⽤户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to ⽤户⼀、grant 普通数据⽤户,查询、插⼊、更新、删除数据库中所有表数据的权利。
数据库授权与权限管理的使用方法概述数据库授权与权限管理是在数据库系统中对用户和角色进行访问控制和权限授予的过程。
通过合理的管理数据库权限,可以实现对敏感数据的保护,避免数据泄露和恶意操作的风险。
本文将介绍数据库授权与权限管理的使用方法,帮助用户正确配置和管理数据库权限。
1. 用户管理用户是数据库中的主体,可以是管理员、开发人员或普通用户。
在进行数据库授权与权限管理之前,首先需要创建用户。
在大多数数据库管理系统中,可以使用以下命令来创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';这个命令将创建一个具有指定用户名和密码的新用户。
在创建用户时,需要指定用户的用户名、允许访问的主机和登录密码等信息。
2. 角色管理角色是一种用户组,通过为角色授予权限,可以简化权限管理过程。
在数据库里,一个角色可以有多个权限。
用户可以成为一个或多个角色的成员,从而继承相应的权限。
在进行角色管理时,可以使用以下命令:CREATE ROLE 'rolename';这个命令将创建一个具有指定角色名的新角色。
3. 权限管理a) 授权给用户或角色任何用户或角色都可以授予一个或多个权限,以允许访问数据库的不同操作和对象。
在授权给用户或角色时,可以使用以下命令:GRANT permission ON database.object TO 'username'@'host' [WITH GRANT OPTION];其中,permission表示授权的权限类型,如SELECT、INSERT、UPDATE、DELETE等;database表示所操作的数据库;object表示所操作的表、视图或存储过程等;'username'@'host'表示将权限授权给指定用户名和主机的用户。
MySQL8授权语法MySQL是一种流行的关系型数据库管理系统,用于存储和管理大量结构化数据。
在MySQL中,授权是一项重要的功能,它允许管理员为用户提供特定的权限和访问级别。
本文将详细介绍MySQL8中的授权语法及其用法。
1. 创建用户在MySQL中,首先需要创建一个用户,然后为该用户分配相应的权限。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';•username:要创建的用户名。
•localhost:可以通过哪个主机连接到MySQL服务器。
可以指定具体的IP地址或主机名。
•password:为用户设置密码。
2. 授权权限创建用户后,需要为其分配相应的权限。
以下是一些常见的权限:•ALL PRIVILEGES:拥有所有权限。
•SELECT:允许查询数据。
•INSERT:允许插入数据。
•UPDATE:允许更新数据。
•DELETE:允许删除数据。
GRANT permission1, permission2 ON database.table TO 'username'@'localhost';•permission1, permission2:要授予的权限列表。
•database.table:要授权的数据库和表名。
使用通配符*表示所有数据库或表。
3. 刷新权限在修改了用户权限之后,需要刷新MySQL服务器以使更改生效。
FLUSH PRIVILEGES;4. 撤销权限如果需要撤销用户的某些权限,可以使用REVOKE语句。
REVOKE permission1, permission2 ON database.table FROM 'username'@'localhost';•permission1, permission2:要撤销的权限列表。
MySQL如何创建新⽤户并授权?1.通过root账号登陆数据库mysql -uroot -p然后输⼊root账号密码2.创建新⽤户,并授权该⽤户可以操作的数据库和表grant all privileges on 数据库名.表名 to '⽤户名'@'主机名' identified by '密码' with grant option;flush privileges;数据库名:如果为*,表⽰所有数据库表名:如果为*,表⽰所有表*.*表⽰root权限,即满权限主机名:localhost表⽰仅允许本地连接,%表⽰本地和远程均可连接flush privileges;表⽰刷新权限,使授权⽣效所以允许远程连接的时候可以使⽤:grant all privileges on *.* to 'root'@'%' identified by 'root账号密码' with grant option;⽐如我们新建test⽤户,授予该⽤户的权限是仅能操作test_database数据库,密码‘123’grant all privileges on test_database.* to 'test'@'%' identified by '123' with grant option;3.如何修改⽤户密码root账号登陆mysql -u root -p使⽤mysql数据库use mysql;查看user表select host,user,authentication_string from user;结果如下:+-----------+------------------+-------------------------------------------+| host | user | authentication_string |+-----------+------------------+-------------------------------------------+| localhost | root | *6C2FC1038AB41E3B2B6D85B409E0F2B9C11BC8D3 || localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | debian-sys-maint | *E73AA584982C771D0F8B40367F92049530E668D4 || % | root | *6C2FC1038AB41E3B2B6D85B409E0F2B9C11BC8D3 || % | test | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |+-----------+------------------+-------------------------------------------+修改⽤户密码:update user set authentication_string = password(‘新密码’) where user = '⽤户名'and host = '主机名';password()为mysql⾃⾝的⼀个加密函数以修改test⽤户密码为'456'为例update user set authentication_string = password('456') where user = 'test'and host = '%';4.如何撤销⽤户权限revoke all on 数据库名.表名 from'⽤户名'@'主机名';5.如何删除⽤户drop user '⽤户名'@’主机名‘;。
MySQL数据库的权限管理与用户授权方法在现代信息化的时代,数据库成为了各个行业重要的数据管理工具。
而MySQL作为一款开源的关系型数据库管理系统,因其性能卓越和易用性而成为了广泛使用的选择。
然而,对于MySQL数据库而言,权限管理是必不可少的一部分。
本文将重点探讨MySQL数据库的权限管理与用户授权方法。
一、权限管理的重要性数据库中存储着各种类型的数据,其中包含了企业重要的商业机密、个人隐私等敏感信息。
如果没有良好的权限管理机制,可能会导致数据泄露、篡改等安全问题。
因此,MySQL数据库的权限管理是确保数据安全的重要环节。
二、MySQL用户权限分类MySQL用户权限可以分为全局级别权限、数据库级别权限和表级别权限三个层次。
1. 全局级别权限全局级别权限指的是对整个数据库服务器的操作权限。
拥有全局级别权限的用户可以对数据库服务器上的所有数据库、数据表进行操作。
一般情况下,只有系统管理员才具备全局级别权限。
2. 数据库级别权限数据库级别权限指的是对某个特定数据库的操作权限。
拥有数据库级别权限的用户可以对该数据库下的所有数据表进行操作。
数据库级别权限可以通过GRANT语句来分配。
3. 表级别权限表级别权限指的是对数据库中的某个特定表的操作权限。
拥有表级别权限的用户可以对该表进行查询、插入、更新和删除等操作。
表级别权限也可以通过GRANT语句来分配。
三、MySQL用户授权方法MySQL提供了GRANT和REVOKE两条SQL语句来实现用户的授权和撤销授权。
1. GRANT语句GRANT语句用于授权,其基本语法如下:```GRANT privileges ON database.table TO user@host;```其中,privileges为授权的权限,可以是全局级别权限、数据库级别权限或表级别权限;database.table为授权的对象,可以是某个具体数据库或数据表;user@host为被授权的用户和主机。
MySQL中的角色和权限管理导语:MySQL是一款非常流行的关系型数据库管理系统,它提供了丰富的角色和权限管理功能,帮助管理员灵活地管理数据库的访问和操作权限。
本文将深入探讨MySQL中的角色和权限管理,介绍其使用方法和注意事项。
一、角色和权限的基本概念1. 角色: 在MySQL中,角色是用来管理和分配权限的抽象概念。
通过创建角色,可以将一组权限集中到一个角色中,便于权限的管理和控制。
2. 权限: 权限是指数据库用户对数据库对象(如表、视图、存储过程等)进行操作的许可。
MySQL中的权限通常包括SELECT、INSERT、UPDATE、DELETE 等。
二、角色和权限的创建和分配1. 创建角色: 在MySQL中,可以通过CREATE ROLE语句创建一个角色。
```CREATE ROLE 'role_name' IDENTIFIED BY 'password';```其中,role_name是角色的名称,password是角色的密码(可选)。
2. 分配权限: 创建角色后,可以使用GRANT语句将权限分配给角色。
```GRANT permission_1, permission_2, ... TO 'role_name';```例如,将SELECT和INSERT权限分配给角色test_role:```GRANT SELECT, INSERT ON database_name.* TO 'test_role';```三、用户和角色的关联1. 创建用户: 在MySQL中,用户是用来登录和访问数据库的实体。
可以使用CREATE USER语句创建一个用户。
```CREATE USER 'username' IDENTIFIED BY 'password';```其中,username是用户的名称,password是用户的密码。
MySQL创建⽤户、授权、撤销权限、删除⽤户⼀、创建⽤户mysql -u root -p 1.mysql->create user 'test'@'localhost' identified by '123'; 2.mysql->create user 'test'@'192.168.7.22' identified by '123'; 3.mysql->create user 'test'@'%' identified by '123';注意:此处的"localhost",是指该⽤户只能在本地登录,不能在另外⼀台机器上远程登录。
如果想远程登录的话,将"localhost"改为"%",表⽰在任何⼀台电脑上都可以登录。
也可以指定某台机器可以远程登录。
如果报错:出现ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决⽅法: 打开my.ini,查找 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 修改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 然后重启MYSQL⼆、授权mysql -u root -p 使⽤命令:grant privileges on databasename.tablename to 'username'@'host' identified by 'pwd'; mysql->grant all on quant.* to 'test'@'localhost' identified by '123'; mysql>flush privileges; 如果授权报错:ERROR 1045 (28000): Access denied for user 'username'@'host' (using password: YES)三、撤销权限mysql -u root -p 使⽤命令:revoke privileges on databasename.tablename from 'username'@'host'; mysql>flush privileges;四、删除⽤户mysql -u root -p 使⽤命令:drop user 'test'@'host';。
mysql create schema authorization 用法在MySQL中,create schema authorization是用于创建数据库模式并授权的命令。
该命令可以帮助用户创建数据库和表,然后授权给其他用户,以便他们可以访问和修改数据库。
以下是有关create schema authorization命令的一些重要信息和用法:1. 语法:CREATE SCHEMA schema_name [AUTHORIZATION user_name];2. 参数说明:- schema_name:要创建的数据库模式的名称。
- user_name:要授权该数据库模式的用户的名称。
3. 示例:- 创建一个名为“customer”的数据库模式,并授权给用户“tom”: CREATE SCHEMA customer AUTHORIZATION tom;- 创建一个名为“sales”的数据库模式,并授权给当前用户: CREATE SCHEMA sales AUTHORIZATION CURRENT_USER;- 创建一个名为“inventory”的数据库模式,并授权给当前用户的角色:CREATE SCHEMA inventory AUTHORIZATION SESSION_USER;4. 注意事项:- 如果未指定授权用户,则将使用当前用户。
- 如果未指定授权用户或当前用户,则将使用SESSION_USER。
- 授权的用户必须具有足够的权限才能使用数据库模式。
- 在使用该命令时,必须以管理员身份登录MySQL。
总之,create schema authorization是一个非常有用的MySQL命令,它可以帮助用户创建数据库模式并授权给其他用户访问和修改。
通过熟练掌握该命令的用法,用户可以更轻松地管理MySQL数据库。
如何在MySQL中创建用户和设置权限一、引言在MySQL数据库管理系统中,用户和权限管理是非常重要的任务之一。
通过创建用户和设置权限,可以分配给各个用户合适的数据库访问权限,保证数据的安全性和完整性。
本文将详细介绍如何在MySQL中创建用户和设置权限,并提供一些实用的技巧和注意事项。
二、创建用户在MySQL中,创建用户需要使用CREATE USER语句。
下面是一个简单的创建用户的示例:```CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';```其中,'username'为你要创建的用户名,'localhost'表示用户只能从本地访问数据库,'password'是用户的密码。
如果要允许用户从任意主机访问数据库,可以将'localhost'改为'%':```CREATE USER 'username'@'%' IDENTIFIED BY 'password';```另外,如果不想设置用户密码,可以使用如下语句:```CREATE USER 'username'@'localhost' IDENTIFIED BY '';三、授权权限创建用户之后,需要为其分配适当的权限,以便他们能够访问和操作数据库。
通过GRANT语句可以实现权限的授权。
下面是一个常见的授权语句示例:```GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO'username'@'localhost';```其中,database_name表示要授权的数据库名称,'username'@'localhost'表示要授权的用户,SELECT、INSERT、UPDATE、DELETE表示要授予的操作权限。
创建数据库并赋权用户的方法创建数据库并赋权用户是一个常见的数据库管理任务。
以下是一个简单的步骤,说明如何在MySQL数据库中执行此操作:1. 登录MySQL:首先,您需要使用root用户或其他具有创建数据库权限的用户登录到MySQL服务器。
```bashmysql -u root -p```输入密码后,您将进入MySQL命令行界面。
2. 创建数据库:在MySQL命令行界面中,使用以下命令创建一个新数据库:```sqlCREATE DATABASE your_database_name;```替换`your_database_name`为您想要的数据库名称。
3. 创建用户:接下来,您需要创建一个新用户。
为此,您需要使用以下命令:```sqlCREATE USER 'username''localhost' IDENTIFIED BY 'password';```替换`username`为您想要的用户名,`password`为用户的密码。
如果用户可以从任何主机连接,请使用`'%'`代替`'localhost'`。
4. 授权用户:要给用户对数据库的特定权限,您需要使用以下命令:```sqlGRANT ALL PRIVILEGES ON your_database_name. TO'username''localhost';```这将授予用户对数据库的所有权限。
如果您只想授予特定权限,请替换`ALL PRIVILEGES`。
例如,如果您只想让用户读取数据库,可以使用`SELECT`权限。
5. 刷新权限:执行以下命令以使更改生效:```sqlFLUSH PRIVILEGES;```6. 退出MySQL:使用以下命令退出MySQL命令行界面:```sqlEXIT;```7. 安全考虑:确保定期审查和更新您的数据库权限,以确保系统的安全性。
mysql8.0.12创建新的数据库、⽤户并授权Mysql安装成功后,默认的root⽤户密码为空,你可以使⽤以下命令来创建root⽤户的密码:[root@host]# mysqladmin -u root password "new_password";现在你可以通过以下命令来连接到Mysql服务器:[root@host]# mysql -u root -pEnter password:*******注意:在输⼊密码时,密码是不会显⽰了,你正确输⼊即可。
⼀、创建数据库mysql> create database news character set utf8;Query OK, 0 rows affected (0.09 sec)⼆、创建⽤户mysql> create user 'news'@'39.15.16.14' identified by '123news';Query OK, 0 rows affected (0.09 sec)三、授权⽤户mysql> grant all privileges on news.* to 'news'@'39.15.16.14';Query OK, 0 rows affected (0.10 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)或者这种⽅法:创建并授权⽤户,是⼆和三的合并。
mysql> grant all on asd.* to 'wanghz'@'192.168.1.%' identified by 'w123'Query OK, 0 rows affected (0.09 sec)mysql> flush privileges;Query OK, 0 rows affected (0.04 sec)四、删除⽤户查看⽤户信息mysql> select distinct * from (select user.Host,er,db.Db,user.Password,user.Drop_priv,user.Grant_priv,user.Alter_priv from db inner JOIN user on er=er) as it where user='wanghz'; +------+--------+-----------+-------------------------------------------+-----------+------------+------------+| Host | User | Db | Password | Drop_priv | Grant_priv | Alter_priv |+------+--------+-----------+-------------------------------------------+-----------+------------+------------+| % | wanghz | asd | *D98C88AFF81F2B8C5A0930313CD1250C6D81672E | N | N | N |+------+--------+-----------+-------------------------------------------+-----------+------------+------------+1 row in set (0.00 sec)mysql> select * from user where user='wanghz'\G;*************************** 1. row ***************************Host: %User: wanghzPassword: *D98C88AFF81F2B8C5A0930313CD1250C6D81672ESelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: NCreate_tablespace_priv: Nssl_type:ssl_cipher:x509_issuer:x509_subject:max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string:password_expired: N1 row in set (0.00 sec)ERROR:No query specifiedmysql> select * from db where user='wanghz'\G;*************************** 1. row *************************** Host: %Db: asdUser: wanghzSelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YGrant_priv: NReferences_priv: YIndex_priv: YAlter_priv: YCreate_tmp_table_priv: YLock_tables_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YExecute_priv: YEvent_priv: YTrigger_priv: Y1 row in set (0.00 sec)ERROR:No query specifiedmysql> 删除⽤户mysql> drop user 'wanghz'@'%';Query OK, 0 rows affected (0.02 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)。
如何在MySQL中创建和管理用户在MySQL中创建和管理用户是数据库管理员经常需要处理的任务之一。
在本文中,我们将深入探讨如何在MySQL中创建和管理用户,以便您能够更好地掌握这项技能。
第一部分:MySQL用户管理概述MySQL是一个关系型数据库管理系统,它允许多用户进行并发访问和管理数据库。
要使用MySQL,用户通常需要有一个有效的用户名和密码。
因此,创建和管理用户是确保数据库安全和管理权限的关键一环。
在MySQL中,使用GRANT 和REVOKE语句来授权和回收用户权限。
第二部分:创建新用户要创建新用户,首先需要登录到MySQL服务器。
一旦登录成功,可以使用以下命令创建新用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';在上述命令中,'username'是要创建的新用户的名称,'host'是用户的主机名,'password'是用户的密码。
主机名可以是具体的IP地址或主机名,也可以使用通配符来允许访问权限的更多灵活性。
例如,要创建一个名为'john'的用户,可以使用以下命令:CREATE USER 'john'@'localhost' IDENTIFIED BY 'password';这将创建一个用户名为'john',密码为'password'的本地用户。
第三部分:授权用户权限在创建用户之后,需要授予用户适当的权限。
使用GRANT语句可以实现对用户的授权。
例如,要授予用户'john'对数据库中的所有表的读取和写入权限,可以使用以下命令:GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO'john'@'localhost';在上述命令中,'database_name'是您要授权用户访问的数据库的名称。
mysql新增⽤户,并赋予⽤户权限在稍微⼤⼀些的公司⾥⾯都是进⾏着明显的权限管理,特别是进⾏数据库操作。
如果赋予⽤户过多权限,⽤户⼀不⼩⼼进⾏删库操作,就会造成巨⼤影响。
因此公司进⾏项⽬都会创建专门的⽤户指定其权限只能控制数据库进⾏有限的操作,不会赋予root权限进⾏操作。
MySQL 在安装时会⾃动创建⼀个名为 mysql 的数据库,mysql 数据库中存储的都是⽤户权限表。
⽤户登录以后,MySQL 会根据这些权限表的内容为每个⽤户赋予相应的权限。
user 表是MySQL 中最重要的⼀个权限表,⽤来记录允许连接到服务器的账号信息。
在 user 表⾥启⽤的所有权限都是全局级的,适⽤于所有数据库。
user 表中的字段⼤致可以分为 4 类,分别是⽤户列、权限列、安全列和资源控制列。
SHOW columns FROM er;在 MySQL 数据库中,权限表除了user表外,还有db表、tables_priv表、columns_priv表和procs_priv表。
tables_priv表⽤来对单个表进⾏权限设置,columns_priv表⽤来对单个数据列进⾏权限设置,procs_priv表可以对存储过程和存储函数进⾏权限设置。
创建⽤户# 语法格式为 [@'host'] host 为'localhost'表⽰本地登录⽤户,host 为 IP地址或 IP 地址区间,表⽰指定IP地址的主机可登录,host 为"%",表⽰所有主机都可登录,省略代表所有主机CREATE USER 'username'[@'host'] IDENTIFIED BY 'password';# eg. 常见 local_user ⽤户可以在所有主机登录,密码为123456CREATE USER 'local_user'@‘%’ IDENTIFIED BY '123456';# eg. 创建 local_user 只允许在本地登录CREATE USER 'local_user'@'localhost' IDENTIFIED BY '123456';删除⽤户# 语法格式DROP USER 'username'@'host';# eg. 删除本地⽤户 local_userDROP USER 'local_user'@'localhost';修改⽤户RENAME USER <'old username'@'host'> TO <'new username'@'host'>查看⽤户权限# 可以通过查询 user 表获取语法格式为SELECT privileges|* FROM user WHERE `user` = 'username';# eg. 查看 local_user 的权限SELECT * FROM user WHERE `user` = 'local_user';# 也可以⽤ SHOW GRANTS 查看SHOW GRANTS FOR 'username' [@host];# eg.SHOW GRANTS FOR local_user;赋予⽤户权限# 语法格式GRANT privileges ON database.table TO 'username'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION]; # [IDENTIFIED BY 'password']在MySQL8.0+⽆法使⽤# eg. 赋予 local_user 在所有主机的所有权限,但不包含给其他账号赋予权限的权限GRANT all ON *.* TO 'local_user'@'%';# 刷新权限权限更新后刷新才会起作⽤FLUSH PRIVILEGES;GRANT命令说明:priveleges (权限列表),可以是all, 表⽰所有权限,也可以是select,update等权限,多个权限的名词,相互之间⽤逗号分开。
mysql⽤户分配权限在mysql中⽤户权限是⼀个很重析参数,因为台mysql服务器中会有⼤量的⽤户,每个⽤户的权限需要不⼀样的,下⾯我来介绍如何给mysql ⽤户分配权限吧,有需要了解的朋友可参考。
1,语法:1.create user ⽤户名 identified by '密码';例:create user xiaogang identified by '123456';新创建的⽤户,默认情况下是没有任何权限的。
2. 如何给⽤户分配权限语法:1.grant 权限 on 数据库.数据表 to '⽤户' @ '主机名';例:给 xiaogang 分配所有的权限grant all on *.* to 'xiaogang'@'%';这个时候 xiaogang 就拥有了所有权限了3 如何更精准的控制⽤户的权限呢?1.grant 权限 on 数据库.数据表 to '⽤户' @ '主机名';例:让 xiaogang 有查询 tmp 数据库 tmp1 表的权限;grant select on temp.temp1 to 'xiaogang'@'%'; //这个时候 xiaogang 就具有查询temp⼩的temp1的权限了。
例如:mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;给来⾃10.163.225.87的⽤户joe分配可对数据库vtdc的employee表进⾏select,insert,update,delete,create,drop等操作的权限,并设定⼝令为123。
mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;给来⾃10.163.225.87的⽤户joe分配可对数据库vtdc所有表进⾏所有操作的权限,并设定⼝令为123。
MySQL⽤户管理:添加⽤户、授权、删除⽤户博主个⼈独⽴站点开通啦!欢迎点击访问:#添加⽤户以root⽤户登录数据库,运⾏以下命令:create user zhangsan identified by 'zhangsan';上⾯的命令创建了⽤户zhangsan,密码是zhangsan。
在er表⾥可以查看到新增⽤户的信息:#授权命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";grant all privileges on zhangsanDb.* to zhangsan@'%' identified by 'zhangsan';flush privileges;上⾯的语句将zhangsanDb数据库的所有操作权限都授权给了⽤户zhangsan。
在mysql.db表⾥可以查看到新增数据库权限的信息:也可以通过show grants命令查看权限授予执⾏的命令:show grants for 'zhangsan';privilegesCode表⽰授予的权限类型,常⽤的有以下⼏种类型[1]:all privileges:所有权限。
select:读取权限。
delete:删除权限。
update:更新权限。
create:创建权限。
drop:删除数据库、数据表权限。
dbName.tableName表⽰授予权限的具体库或表,常⽤的有以下⼏种选项:.:授予该数据库服务器所有数据库的权限。
dbName.*:授予dbName数据库所有表的权限。
dbName.dbTable:授予数据库dbName中dbTable表的权限。
username@host表⽰授予的⽤户以及允许该⽤户登录的IP地址。
其中Host有以下⼏种类型:localhost:只允许该⽤户在本地登录,不能远程登录。
mysql授权、启动、启动服务常⽤命令⼀、四种启动⽅式:1、mysqld启动mysql服务器: ./mysqld --defaults-file=/etc/f --user=root客户端连接: mysql --defaults-file=/etc/f 或 mysql -S /tmp/mysql.sock2、mysqld_safe启动mysql服务器: ./mysqld_safe --defaults-file=/etc/f --user=root &客户端连接: mysql --defaults-file=/etc/f 或 mysql -S /tm/mysql.sock3、mysql.servercp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/chkconfig --add mysql.server启动mysql服务器:service mysql.server {start|stop|restart|reload|force-reload|status}客户端连接: 同1、24、mysqld_multimkdir $MYSQL_BASE/data2cat <<-EOF>> /etc/f[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /user/local/mysql/bin/mysqladminuser = mysqladminpassword = mysqladmin[mysqld3306]port = 3306socket = /tmp/mysql3306.sockpid-file = /tmp/mysql3306.pidskip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mbasedir = /usr/local/mysqldatadir = /usr/local/mysql/data[mysqld3307]port = 3307socket = /tmp/mysql3307.sockpid-file = /tmp/mysql3307.pidskip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mbasedir = /usr/local/mysqldatadir = /usr/local/mysql/data2EOF#mysql -S /tmp/mysql3306.sockmysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' identified by 'mysqladmin' with grant option;#mysql -S /tmp/mysql3307.sockmysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' identified by 'mysqladmin' with grant option;启动mysql服务器:./mysqld_multi --defaults-file=/etc/f start 3306-3307关闭mysql服务器:mysqladmin shutdown⼆、启动和关闭mysql服务1. windows下:启动: mysqld --console 或 net start mysql关闭: mysqladmin -u root shutdown 或 net stop mysqllinux下:启动: service mysql start停⽌: service mysql stop重启服务: service mysql restart三、创建⽤户分配权限1. 新建⽤户: 创建⼀个名为: buff,密码为: buff的⽤户// root ⽤户登陆 MySQLmysql -uroot -pEnter password:// 新建⽤户mysql>insert into er(Host,User,Password) values("localhost","buff",password("buff"));// 刷新系统权限表mysql>flush privileges;登录测试mysql>exit// ⽤户 buff 登陆 MySQLmysql -ubuff -pEnter password:mysql>// 说明新建的⽤户buff登录成功⽤户授权// root ⽤户登陆 MySQLmysql -uroot -pEnter password:// 为⽤户 buff 创建⼀个数据库 bluebuffmysql>create database bluebuff;// 授权⽤户 buff 拥有数据库 bluebuff 的所有权限mysql>grant all privileges on bluebuff.* to buff@localhost identified by 'buff';mysql>flush privileges;登录测试// ⽤户 buff 登陆数据库mysql -ubuff -pEnter privileges:// 显⽰数据库mysql>show databases;结果如下图所⽰,说明为⽤户 buff 授权成功5、修改⽤户 buff 的密码// root ⽤户登陆 MySQLmysql -uroot -pEnter password:// 修改⽤户 buff 的密码mysql>update table er set password=password('buffer') where User='buff' and Host='localhost';mysql>flush privileges;6、删除⽤户// root ⽤户登陆 MySQLmysql -uroot -pEnter password:// 删除⽤户 buffmysql>delete from er where User = 'buff' and Host = 'localhost';mysql>flush privileges;7、删除数据库mysql>drop database bluebuff;四、查看⽤户授予的权限在mysql中,授予⽤户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、⼦程序层级权限1. 全局层级:全局权限适⽤于⼀个给定服务器中的所有数据库。
mysql authorization method -回复MySQL是一个开源的关系型数据库管理系统,广泛应用于网站开发和数据存储领域。
在使用MySQL时,授权(authorization)方法是非常重要的一部分,它允许用户管理数据库的访问权限和安全性。
授权方法主要涉及到以下几个方面:用户创建、权限分配、权限撤销以及权限管理。
用户创建是授权的第一步。
在MySQL中,我们可以使用CREATE USER 语句来创建用户。
CREATE USER语句的基本语法如下:CREATE USER '用户名''主机名' IDENTIFIED BY '密码';其中,'用户名'是你要创建的用户的名称,'主机名'是指允许用户从哪个主机连接到服务器,IDENTIFIED BY '密码'表示用户的密码。
例如,如果要创建一个名为'admin'的用户,并且只允许从本地主机连接,请使用以下命令:CREATE USER 'admin''localhost' IDENTIFIED BY 'password';权限分配是授权的下一步。
在MySQL中,我们可以使用GRANT语句来授权用户的访问权限。
GRANT语句的基本语法如下:GRANT 权限列表ON 数据库名称.表名称TO '用户名''主机名';其中,权限列表是指要授予用户的权限,可以是多个权限的组合,用逗号分隔。
数据库名称和表名称是指用户将被授权的数据库和表,'用户名'和'主机名'与创建用户时保持一致。
例如,如果要将SELECT和INSERT权限授予用户'admin',并且将其限制在数据库'mydb'的表'table1'上,请使用以下命令:GRANT SELECT, INSERT ON mydb.table1 TO 'admin''localhost';权限撤销是授权的另一方面。
如何使用MySQL实现多用户权限管理和用户角色控制MySQL是一个流行的关系型数据库管理系统,被广泛应用于各个领域。
在实际应用中,多用户权限管理和用户角色控制是非常重要的。
本文将探讨如何使用MySQL实现多用户权限管理和用户角色控制的方法和技巧。
一、理解MySQL的权限体系在开始之前,我们首先需要了解MySQL的权限体系。
MySQL的权限体系是基于用户授权的,它允许管理员对用户进行授权,从而决定其可以执行的操作。
MySQL的权限可以分为全局级别权限和数据库级别权限两种。
全局级别权限允许用户在整个MySQL服务器上执行某些操作,比如创建用户、创建数据库等。
数据库级别权限则是指用户对某个数据库的权限,比如读取表、插入数据等。
二、创建用户和分配权限要实现多用户权限管理,首先需要创建用户并分配相应的权限。
在MySQL中,可以使用以下命令创建用户:```CREATE USER 'username'@'host' IDENTIFIED BY 'password';```其中,'username'是要创建的用户名,'host'是可以访问MySQL服务器的主机地址,'password'是用户的密码。
创建用户之后,我们可以使用GRANT命令为用户分配权限。
GRANT命令的语法如下:```GRANT privileges ON database.table TO 'username'@'host';```其中,privileges是要分配的权限,可以是ALL PRIVILEGES表示全部权限,也可以是SELECT、INSERT、UPDATE等具体的权限。
database.table是要授权的数据库和表,可以使用*表示全部数据库和表。
三、创建角色和授权除了直接为用户分配权限,我们还可以创建角色并授权给用户角色,从而实现用户角色控制的目的。
MySQL查看登录⽤户以及修改密码和创建⽤户以及授权1、mysql查看当前登录⽤户,当前数据库:select user();select database();2、修改root或其他⽤户密码update er set password=password('新密码') where user='⽤户名';flush privileges; //此为刷新权限3、建库create database `库名` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;4、创建⽤户新增⽤户,并只限本地登录insert into er(Host,User,Password) values("localhost","⽤户名",password("密码"));flush privileges;新增⽤户,外⽹可登录insert into er(Host,User,Password) values("%","⽤户名",password("密码"));flush privileges;5、授予⽤户通过外⽹IP对于该数据库的全部权限grant all privileges on `库名或*`.* to '⽤户名'@'%' identified by '密码';flush privileges;6、授予⽤户在本地服务器对该数据库的全部权限grant all privileges on `库名或*`.* to 'testuser'@'localhost' identified by 'userpasswd';flush privileges;7、针对test数据库创建⼀个⽆任何权限的⽤户grant usage on test.*to zhangsan@localhost identified by'zhangsan1';赋予某个权限grant select on test.*to zhangsan@localhost;8、撤销⼀个⽤户对某数据库的所有权限revoke all privileges on test.*from zhangsan@localhost;。
MySQL创建用户与授权
MySQL创建用户与授权
博客分类:
mysql
注:我的运行环境是widnowsxp professional + MySQL5.0
一, 创建用户:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
二,授权:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子: GRANT SELECT, INSERT ON er TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: GRANT privileges ON
databasename.tablename TO 'username'@'host'WITH GRANT OPTION;
三.设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");
例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
四.撤销用户权限
命令: REVOKE privilege ON databasename.tablename
FROM 'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT
ON er TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON er FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.
具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.
五.删除用户
命令: DROP USER 'username'@'host';
附表:在MySQL中的操作权限
标签: C#, mysql。