精华内容
下载资源
问答
  • Mysql授予权限

    千次阅读 2019-04-27 19:59:31
    所有用户及权限信息存储在mysql数据库的user表 查看user表的结构 desc user; 主要字段说明: Host表示允许访问的主机 User表示用户名 authentication_string表示密码,为加密后的值 查看所有...

    授予权限

    需要使用实例级账户登录后操作,以root为例

    主要操作包括:

    • 查看所有用户
    • 修改密码
    • 删除用户

    1. 查看所有用户

    • 所有用户及权限信息存储在mysql数据库的user表中
    • 查看user表的结构
    desc user;
    
    • 主要字段说明:
      • Host表示允许访问的主机
      • User表示用户名
      • authentication_string表示密码,为加密后的值

    查看所有用户

    select host,user,authentication_string from user;
    

    结果

    mysql> select host,user,authentication_string from user;
    +-----------+------------------+-------------------------------------------+
    | host      | user             | authentication_string                     |
    +-----------+------------------+-------------------------------------------+
    | localhost | root             | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
    | localhost | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | localhost | debian-sys-maint | *EFED9C764966EDB33BB7318E1CBD122C0DFE4827 |
    +-----------+------------------+-------------------------------------------+
    3 rows in set (0.00 sec)
    

    2. 创建账户、授权

    • 需要使用实例级账户登录后操作,以root为例
    • 常用权限主要包括:create、alter、drop、insert、update、delete、select
    • 如果分配所有权限,可以使用all privileges

    2.1 创建账户&授权

    grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';
    

    2.2 示例1

    创建一个laowang的账号,密码为123456,只能通过本地访问, 并且只能对jing_dong数据库中的所有表进行操作

    step1:使用root登录

    mysql -uroot -p
    回车后写密码,然后回车
    

    step2:创建账户并授予所有权限

    grant select on jing_dong.* to 'laowang'@'localhost' identified by '123456';
    

    说明

    • 可以操作python数据库的所有表,方式为:jing_dong.*
    • 访问主机通常使用 百分号% 表示此账户可以使用任何ip的主机登录访问此数据库
    • 访问主机可以设置成 localhost或具体的ip,表示只允许本机或特定主机访问
    • 查看用户有哪些权限
    show grants for laowang@localhost;
    

    step3:退出root的登录

    quit
    

    step4:使用laowang账户登录

    mysql -ulaowang -p
    回车后写密码,然后回车
    

    2.3 示例2

    创建一个laoli的账号,密码为12345678,可以任意电脑进行链接访问, 并且对jing_dong数据库中的所有表拥有所有权限

    grant all privileges on jing_dong.* to "laoli"@"%" identified by "12345678"
    

    展开全文
  • 在MySQL中,如何给用户授予权限

    千次阅读 2019-09-03 23:18:56
    MySQL是一种关联数据库管理系统,关联数据库将数据保存不同的表,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。...

    MySQL简介:

    MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

    MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。


    在数据库中,我们常见的操作有以下:

    操作命令操作说明
    INSERT允许它们将行插入表中
    CREATE允许他们创建新的表或数据库
    UPDATE允许他们更新表行
    DELETE允许他们从表中删除行
    DROP允许他们删除表或数据库
    SELECT允许他们使用该SELECT命令读取数据库
    GRANT OPTION允许他们授予或删除其他用户的权限
    ALL所有特权,正如我们之前看到的,这将允许MySQL用户完全访问指定的数据库(或者如果没有选择数据库,则跨系统进行全局访问)

    在MySQL中,一般授予用户的权限有以下五种常见方式:

    全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。

    1.全局层级

    全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中通常用【grant all on .】来授予全局权限和【revoke all on .】撤销全局权限。   

    2.数据库层级

    数据库权限适用于一个给定数据库中的所有目标。这些权限存储在mysql.db和mysql.host表中。【grant all on db_name .和【 revoke all on db_name .只授予和撤销数据库权限。   

    3.表层级

    表权限适用于一个给定表中的所有列。这些权限存储在mysql.tables_priv表中。【grant all on db_name.tbl_name.】和【revoke all on db_name.tbl_name.】只授予和撤销表权限。

    4.列层级

    列权限适用于一个给定表中的单一列。这些权限存储在mysql.columns_priv表中。当使用revoke时,您必须指定与被授权列相同的列。

    5.子程序层级

    create routine, alter routine, execute 和 grant权限适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级。而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中。

    具体操作:

    1.创建用户【create user 'newuser'@'localhost' identifed by 'password';

    我们指定新用户【newuser】的主机为localhost而不是服务器的IP地址。localhost只是一个主机名,意思是“这台计算机”,MySQL专门处理这个特定的主机名:当有该主机的用户登录MySQL时,它将尝试使用Unix套接字文件连接到本地服务器。因此,localhost通常在计划通过SSH连接到服务器或运行本地mysql客户端连接到本地MySQL服务器时使用。

    此时,刚建好的新用户【newuser】对数据库是没有任何的执行操作权限;因此,首先要做的就是为新用户提供他们所需的访问权限。

    2.给用户授权【grant 权限 privileges on *.* to 'newuser'@'localhost';

    此命令中的星号指的是新用户【newuser】可以访问的数据库和表(分别)

    权限若是写的 all 则表示:允许用户读取,写入,执行 所有数据库和表的权限;此权限相当于root的访问权限,但对于大多数用例来说可能是不切实际的,并且可能会使您的数据库的安全性处于高风险。

    PS:一条授权命令可以配置多个权限,权限之间用英文逗号隔开:

    grant update, selcet on [数据库名字].[数据表名字] to [用户名]@'localhost';

    如果您需要撤消权限,则语法结构几乎与授予权限基本相同:

            只是将grant 修改为  revoke ;将 to 修改为  from

    revoke delete on database_name.table_name from 'newuser'@'localhost';

    3.每次更新或更改权限时,请务必使用“刷新权限”命令【flush privileges;

    4.查看用户的当前权限:【show gaants newuser;


     

    展开全文
  • MySQL授予权限

    千次阅读 2017-07-31 23:40:28
    数据库,不同的用户拥有不同的权限,合理的授权,可以保证数据库的安全GRANT语句MySQL中,提供了一个GRANT语句,用于为用户授权语法格式 GRANT privileges [(columns)] [, privileges [(columns)]] ON database....

    数据库中,不同的用户拥有不同的权限,合理的授权,可以保证数据库的安全

    GRANT语句

    MySQL中,提供了一个GRANT语句,用于为用户授权

    语法格式
    GRANT privileges [(columns)] [, privileges [(columns)]] ON database.table
    TO ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]
    [, ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]]……
    [WITH with_option [with_option]……]

    参数说明

    privileges,表示权限类型
    columns,表示权限作用于某一列,该参数可以省略不写,此时,权限作用于整个表
    username,表示用户名
    hostname,表示主机名
    IDENTIFIED BY,为用户设置密码
    PASSWORD,为关键字
    password,为用户的新密码

    WITH关键字,后面可以带有多个参数with_option,有5个取值
    1、GRANT OPTION,将自己的权限,授予其他用户
    2、MAX_QUERIES_PER_HOUR count,设置每小时最多,可以执行多少次(count)查询
    3、MAX_UPDATE_PER_HOUR count,设置每小时最多,可以执行多少次更新
    4、MAX_CONNECTIONS_PER_HOUR count,设置每小时,最大的连接数量
    5、MAX_USER_CONNECTIONS,设置每个用户最多,可以同时建立连接的数量

    使用GRANT语句,创建一个新用户,用户名为user4,密码为123
    权限,user4用户,对所有数据库有INSERT SELECT权限,并使用WITH GRANT OPTION子句

    这里写图片描述

    执行成功,使用SELECT查询user表的用户权限

    这里写图片描述

    可以看出,user的值为user4
    Insert_priv、Slect_priv、Grant_priv的值都为Y
    说明,用户user4,对所有数据库具有增加、查询以及对其他用户,赋予相应权限的功能

    展开全文
  • 如何在MySQL中创建新用户并授予权限

    千次阅读 2018-12-07 11:48:26
    原作者:Etel Sverdlov 转载&翻译来源:https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql ...它有多种选项可以为表格和数据库的特定用...

    原作者:Etel Sverdlov  转载&翻译来源:https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

     

    介绍

    MySQL是一种开源数据库管理软件,可帮助用户存储,组织和以后检索数据。它有多种选项可以为表格和数据库中的特定用户授予细微差别的权限 - 本教程将简要介绍一些众多选项。

    重点意味着什么

    在本教程中,将突出显示用户需要输入或自定义的所有行!其余的应该主要是复制和可接受的。

     

    如何创建新用户

    MySQL教程的第1部分中,我们以root用户身份完成了MySQL中的所有编辑,可以完全访问所有数据库。但是,如果可能需要更多限制,则可以使用自定义权限创建用户。

    让我们从在MySQL shell中创建一个新用户开始:

    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; 

    注意:在本教程中在MySQL shell中添加用户时,我们将指定用户的主机localhost而不是服务器的IP地址。localhost是一个主机名,意思是“这台计算机”,MySQL专门处理这个特定的主机名:当有该主机的用户登录MySQL时,它将尝试使用Unix套接字文件连接到本地服务器。因此,localhost通常在计划通过SSH连接到服务器或运行本地mysql客户端连接到本地MySQL服务器时使用。

    此时,newuser无权对数据库执行任何操作。事实上,即使newuser尝试登录(使用密码,密码),他们也无法访问MySQL shell。

    因此,首先要做的是为用户提供他们所需信息的访问权限。

    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost'; 

    此命令中的星号指的是它们可以访问的数据库和表(分别) - 此特定命令允许用户读取,编辑,执行和执行所有数据库和表中的所有任务。

    请注意,在此示例中,我们授予newuser对数据库中所有内容的完全root访问权限。虽然这有助于解释一些MySQL概念,但对于大多数用例来说可能是不切实际的,并且可能会使您的数据库的安全性处于高风险。

    完成要为新用户设置的权限后,请务必重新加载所有权限。

    FLUSH PRIVILEGES; 

    您的更改现在将生效。

     

    如何授予不同的用户权限

    以下是用户可以享受的其他常见可能权限的简短列表。

    • 所有特权 - 正如我们之前看到的,这将允许MySQL用户完全访问指定的数据库(或者如果没有选择数据库,则跨系统进行全局访问)
    • CREATE-允许他们创建新的表或数据库
    • DROP-允许他们删除表或数据库
    • DELETE-允许他们从表中删除行
    • INSERT-允许它们将行插入表中
    • SELECT-允许他们使用该SELECT命令读取数据库
    • UPDATE - 允许他们更新表行
    • GRANT OPTION-允许他们授予或删除其他用户的权限

    要为特定用户提供权限,您可以使用此语法框架:

    GRANT type_of_permission ON database_name.table_name TO ‘username’@'localhost’; 

    PS:一条授权命令可以配置多个权限,权限之间用英文逗号隔开:

    "GRANT UPDATE, SELECT ON [database name].[table name] TO ‘[username]’@‘localhost’;"

    如果要授予它们访问任何数据库或任何表的权限,请确保在数据库名称或表名称的位置放置星号(*)。

    每次更新或更改权限时,请务必使用“刷新权限”命令。

    如果您需要撤消权限,则语法结构几乎与授予权限相同:

    REVOKE type_of_permission ON database_name.table_name FROM ‘username’@‘localhost’; 

    请注意,在撤消权限时,语法要求您使用FROM,而不是TO在授予权限时使用。

    您可以通过运行以下命令来查看用户的当前权限:

    SHOW GRANTS username

    就像您可以使用DROP删除数据库一样,您可以使用DROP完全删除用户:

    DROP USER ‘username’@‘localhost’; 

    要测试新用户,请键入以下内容注销:

    quit 

    并在终端中使用此命令重新登录:

    mysql -u [username] -p 

    结论

    完成本教程后,您应该了解如何添加新用户并在MySQL数据库中授予他们各种权限。从这里开始,您可以继续探索和试验数据库的不同权限设置,或者您可能希望了解有关某些更高级别MySQL配置的更多信息。

    有关MySQL基础知识的更多信息,我们建议您查看以下教程:

    展开全文
  • 创建MySQL用户帐户和授予权限

    千次阅读 2020-01-17 14:10:05
    创建MySQL用户帐户和授予权限创建一个新的MySQL用户帐户向MySQL用户帐户授予特权显示MySQL用户帐户权限从MySQL用户帐户撤消权限删除现有的MySQL用户帐户测试对数据库的访问 MySQL是最流行的开源关系数据库管理系统。...
  • mysql授予权限

    2019-07-11 09:22:00
    grant show databases on *.* to 'asg'@'%'; grant select on *.* to 'asg'@'%'; grant show view on *.* to 'asg'@'%';
  • MySQL 查看用户授予权限

    千次阅读 2019-09-06 06:07:42
    在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。具体分类如下: 全局层级 全局权限适用于一个给定...
  • 主要介绍了详解mysql8.0创建用户授予权限报错解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • mysql授予用户权限

    万次阅读 2017-10-25 15:44:19
    mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为:  grant 权限 on 数据库对象 to 用户  一、grant 普通数据用户,查询、插入、更新、...
  • MySQL权限授予及注意事项

    千次阅读 2018-11-19 16:10:31
    对于权限授予,库和表级别的都比较...其实,MySQL对列的授权,是有专门的语法实现的,例如授予test库priv_test表的id列的select权限给sam用户,可以用以下语法实现: grant select(id) on test.priv_test to sam...
  • mysql 创建用户 授予权限

    千次阅读 2013-06-08 15:45:08
    说明:username - 你将创建的用户名, host - 指定该用户哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果...
  • mysql创建用户并授予权限

    千次阅读 2019-07-25 13:31:18
    使用root账户进行登录:mysql -u root -p 创建用户:create user 'test'@'%'...授予权限:grant all privileges on *.* to 'test'@'%'; 刷新权限缓存:flush privileges; 创建成功即可使用新用户名密码进行登录。 ...
  • MySQL添加用户并授予权限

    千次阅读 2018-10-08 14:51:00
    创建用户 mysql> create user 'sqluser' @ 'host' identfied by 'password'; ... ...host:指定登录主机,本地 localhost,%匹配所有;...授予用户权限 mysql> grant all privileges on *.* to s...
  • 1.授予所有权限给一个用户 grant all privileges on *.* to '用户名'@'ip地址' identified by '密码' with grant option; flush privileges; 2. 授予test数据库给一个用户 grant all privileges on test.* to '...
  • 这样开发项目的过程,就只能用该用户操作指定的数据库,而无法影响到其他的数据库了,无疑,这种做法提高了数据操作的安全性。 创建用户 要创建一个新的mysql用户的话,需要用root用户登录MySQL服务器并进行操作...
  • mysql授予权限小结

    2016-01-28 17:59:30
    注意授予ALL 权限是except GRANT OPTION!!!mysql> Enter the following if the database user already exists.: GRANT SELECT ON database.* TO user@'localhost'; If you intend to create a brand new user, then ...
  • mysql授予用户的执行权限

    千次阅读 2018-11-07 14:11:40
    MySQL包含哪些权限,共29个。 权限 说明 举例 usage 连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。  该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被...
  • ​ 下面的SQL需要localhost下使用root用户登录执行,当然也可以进行权限的设置,有点麻烦. ​ grant是收益权限的命令,后面紧跟着权限选项(可以用all代替全部权限),databaseName是操作的数据库名,后面是’被授予...
  • Mysql给用户授予数据库表权限

    万次阅读 2019-06-01 17:31:21
    生产环境读写权限用户无法访问其它用户创建的数据库及表,才想起来忘记给目标用户授权了,owner用户创建完数据库及表后给读写权限用户授予权限,授权语句如下: grant all privileges on databaseName.* to ...
  • 如何创建新用户和授予MySQL中权限

    万次阅读 2017-01-17 09:05:21
    MySQL是一个强大的数据库管理系统,用于组织和检索数据。本教程解释如何创建新的MySQL用户以及如何授予他们适当的权限
  • linux mysql 创建用户并授予权限

    千次阅读 2014-06-16 19:58:38
     1.新建用户  //登录MYSQL  #mysql -u root -p ... //创建用户  mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'lwd',password... //刷新系统权限表  mysql>flush privileges

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,093
精华内容 10,837
关键字:

在mysql中可以授予的权限包括

mysql 订阅