• mysql用户管理,权限管理


    mysql权限 相关操作:
    授予的权限分为四组:
    列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值
    表权限:和一个具体的表的所有数据相关,例如:使用 select 查询test
    有中的所有数据
    数据库权限:和一个具体的数据库的所有表相关,例如:在已有的test数据库中创建新表的权限
    用户权限:和mysql所知道的所有数据库相关,例如:删除已有的数据库或创建一个新的数据库
    增加用户
    create user '用户名'@'主机名' identified by '密码'
    as:
    create user 'lin3615'@'localhost' identified by '123456'
    此时创建的用户是没有操作别的数据库和表的权限的,只能查看表名而已
    
    create user 'lin3615'@'www.lin3615.net'
    表示创建的用户从
    www.lin3615.net主机登陆到mysql,没有设置密码,则表示不用密码就可以连接
    
    create user 'lin3615'@'%'与create user 'lin3615'
    一样,默认是可以从每个主机上登陆
    
    删除用户
    drop user '用户名'@'主机名'
    as:
    drop user 'lin3615'@'localhost'
    
    修改用户名,但是密码不变,无法修改用户口名
    rename user '新用户名'@'主机名' to '旧用户名'@'主机名'
    as:
    rename user 'ok123'@'localhost' to 'lin3615'@'localhost'
    
    修改用户密码:
    set password for '用户名'@'主机名' = password('新密码')
    as:
    set password for 'lin3615'@'localhost'=password('123456')
    
    授予表和列权限:
    select,insert,delete,update:select,insert,delete,update 表的权限
    references:给予用户创建一个外键来参照特定的表的权力
    create,alter,index,drop:指定用户创建指定的表的,修改表,定义索引,删除表的权限
    all/all privileges:所有的权限
    
    形式:
    grant 权限
    on 库/表
    to 用户名
    [with option]
    如果授予一个不存在的用户,则会自动创建一个用户
    as:授予lin3615查询表的权限:
    grant select on test to lin3615
    
    as:给新用户查询权限
    grant select
    on test.test
    to 'lin3615'@'localhost' identified by '123456'
    
    授予数据库权限
    select,insert,update,delete
    references:给予用户创建指向特定的数据库的表外键的权限
    create:给予在特定的数据库创建表的权限
    alert:给予特定数据库中修改表的权限
    drop:给予删除数据库中表和视图的权限
    index:给予在特定的数据库中表的索引增删修改权限
    create temporary tables:给予特定数据库上创建临时表的权限
    create view:给予特定数据库中创建视图的权限
    show view:给予查看特定数据库中视图的权限
    create routine:给予创建特定数据库中存储过程和存储函数的权限
    execute routine:给予使用特定数据库中的存储过程和函数的权限
    alter routine:给予特定数据库中修改存储过程和函数的权限
    lock tables:给予特定数据库中表的锁权限
    all/all privileges:所有权限,在5.5中测试时,发现不能这样作,也许是安全问题吧,
    所以为了安全起见,还是分别上权限名称
    
    as:给予 lin3615查询test数据库中所有表的权限
    grant select
    to test.*
    on lin3615
    
    as:给予lin3615对数据库test中创建数据表,更新数据表,删除数据表的权限
    grant create,alter,drop
    on test.*
    to lin3615
    
    授予用户权限
    create user:给予用户创建和删除数据库的权限
    show database:给予用户使用show database查看数据库的权限
    as:授予lin3615对所有数据库中所有表的 create,alter,drop权限
    grant create,alter,drop
    on *.*
    to lin3615
    
    授予lin3615 创建新用户的权限
    grant create user
    on *.*
    to lin3615
    
    权限的传递:with grant option
    把自己的权限也传递给用户
    as:
    grant select
    on test.*
    to lin3615
    with grant option
    上面的语句,其实是把lin3615所有操作表的权限都授权给他的用户了,而并不是只授予查询的功能
    
    回收权限
    revoke 权限 [option]
    on 数据库.表名
    from 用户
    as:回收lin3615对test.test中的更新权限
    revoke update
    on test.test
    from lin3615
    其中的 option选项,表示同时删除由这个用户权限传递给别的用户的相应权限
    如果没有 option选项,则表示那些用户还拥有那些权限
    

      

  • 相关阅读:
    课后作业5
    类与对象动手动脑
    动手动脑
    找“水王”
    NABCD
    第七周学习进度
    web网页四则运算
    二维数组最大联通子数组求和
    第六周学习进度
    环状数组最大子数组求和
  • 原文地址:https://www.cnblogs.com/lin3615/p/4149237.html
Copyright © 2020-2023  润新知