• MySQL下添加用户以及给予权限的实现


    在mysql中添加用户的方法如下:

    1 使用root用户登录

    mysql -u root -p

    2  选择mysql数据库

    use mysql

    3  添加用户

    insert into user(Host,User,Password)  values("localhost","你的用户名",password("你的密码"));

    把汉字换成你想使用的用户名或密码

    4 刷新MySQL的系统权限相关表

    flush privileges;

    给用户添加权限:

    假设我现在数据库中有一个名字为ysou的数据库,有一个用户名为honest的用户,我想让honest拥有ysou中所有表的所有(增删改查)权限,

    操作如下:

    1 使用root用户登录

    mysql -u root -p

    2 添加权限

    grant all on ysou.* to honest ;

    3 退出root,使用honest登陆mysql,使用show databases既可以看到目前honest可以操作的表格,当然,,我们可以进入相应数据库进行操作。

    mysql> UPDATE user SET password=PASSWORD("123") WHERE ;

    mysql> FLUSH PRIVILEGES;

    mysql> GRANT ALL ON mail.* TO  IDENTIFIED BY "456";

    解决办法   grant all privileges on *.* to  identified by '1';

                      flush privileges;

    附:

     mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;


    权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
    当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
    当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
    用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
    ‘连接口令’不能为空,否则创建失败。

    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>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
    给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

    mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
    给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

    GRANT 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限.对象创建后,除了创建者外,除非创建者赋予(GRANT)权限,其他人没有访问对象的权限. 一旦用户有某对象的权限,他就可以使用那个特权.不需要给创建者赋予(GRANT)对象的权限,创建者自动拥有对象的所有权限,包括删除它的权限.

    GRANT

    名称

    GRANT — 赋予一个用户,一个组或所有用户访问权限

    GRANT privilege [, ...] ON object [, ...]

    TO { PUBLIC | GROUP group | username }

    输入

    privilege

    可能的权限有:

    SELECT

    访问声明的表/视图的所有列/字段.

    INSERT

    向声明的表中插入所有列字段.

    UPDATE

    更新声明的所有列/字段.

    DELETE

    从声明的表中删除所有行.

    RULE

    在表/视图上定义规则 (参见 CREATE RULE 语句).

    ALL

    赋予所有权限.

    object

    赋予权限的对象名.可能的对象是:

    table (表)

    view (视图)

    sequence (序列)

    index (索引)

    PUBLIC

    代表是所有用户的简写.

    GROUP group

    将要赋予权限的组 group .目前的版本中,组必须是用下面方法显式创建的.

    username

    将要赋予权限的用户名.PUBLIC 是代表所有用户的简写.

    输出

    CHANGE

    如果成功,返回此信息.

    ERROR: ChangeAcl: class "object" not found

    如果所声明的对象不可用或不可能对声明的组或用户赋予权限.

    注意

    目前,要想在 Postgres 里面只赋予几列权限,你必须创建一个包含那几列的视图(view),然后把权限赋予那几个视图。

    使用 psql z 命令获取关于现存对象权限的更多信息:

    Database = lusitania

    +------------------+---------------------------------------------+

    | Relation | Grant/Revoke Permissions |

    +------------------+---------------------------------------------+

    | mytable | {"=rw","miriam=arwR","group todos=rw"} |

    +------------------+---------------------------------------------+

    Legend:

    uname=arwR -- privileges granted to a user

    group gname=arwR -- privileges granted to a GROUP

    =arwR -- privileges granted to PUBLIC

    r -- SELECT

    w -- UPDATE/DELETE

    a -- INSERT

    R -- RULE

    arwR -- ALL

    小技巧: 目前,要创建一个 GROUP (组), 你将不得不手工向表 pg_group 中插入数据,像:

    INSERT INTO pg_group VALUES ('todos');

    CREATE USER miriam IN GROUP todos;

    参考 REVOKE 语句重新分配访问权限.

    用法

    给所有用户向表 films 插入记录的权限:

    GRANT INSERT ON films TO PUBLIC;

    赋予用户 manuel 操作视图 kinds 的所有权限:

    GRANT ALL ON kinds TO manuel;

    兼容性

    SQL92
    SQL92 GRANT 语法允许对表中的某单独列/字段设置权限,并且允许设置一权限以赋予别人相同权限.
    GRANT privilege [, ...]
    ON object [ ( column [, ...] ) ] [, ...]
    TO { PUBLIC | username [, ...] } [ WITH GRANT OPTION ]
    这些字段与 Postgres 实现是兼容的,除了下面一些例外: 
    privilege 
    SQL92 允许声明附加的权限:
    SELECT 
    REFERENCES 
    允许在一个声明的表的整合约束中使用某些或全部列/字段. 
    USAGE 
    允许使用一个域,字符集,集合或事务.如果声明的对象不是表/视图, privilege 只能声明为 USAGE. 
    object 
    [ TABLE ] table 
    SQL92 允许一个附加的非函数关键字 TABLE. 
    CHARACTER SET 
    允许使用声明的字符集. 
    COLLATION 
    允许使用声明的集合序列. 
    TRANSLATION 
    允许使用声明的字符集转换. 
    DOMAIN 
    允许使用声明的域. 
    WITH GRANT OPTION 
    允许向别人赋予同样权限.

  • 相关阅读:
    [POJ 1050]To the Max
    P1678 烦恼的高考志愿
    P1873 砍树
    P1102 A-B 数对
    P6771 [USACO05MAR]Space Elevator 太空电梯
    P2347 砝码称重
    P1832 A+B Problem(再升级)
    P1679 神奇的四次方数
    P1877 [HAOI2012]音量调节
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/lindafu/p/4446864.html
Copyright © 2020-2023  润新知