数据库权限说明

参考:I’m Me!博客,网址:http://www.cnblogs.com/Richardzhu/p/3318595.html

********************************Mysql  中host  中ip通配为  %  , 不是     *

Host=192.168.1.%         -------正确,%为通配
Host=192.168.1.*          ------错误,都不可匹配


*******************在创建用户密码的时候,

create user 'zhou'@'110.3.55.143' identified by 'user#$123';

则在linux的mysql服务器上,连接密码为  -p'user#$123'  ,而不是 -puser#$123, 因为其有特殊字符  #$,注意




mysql中

数据库链接: mysql -h ip osns -uUser -pPwd

其中-h为需要指名服务器名地址,其中ip为地址, 用户为User,密码Pwd


或者直接连接:mysql -u用户 -p密码,

所有用户均为mysql数据库中的mysql数据库user表中,对于用户的权限,见下。




注:mysql权限类型,mysql5.0权限表。主要权限如下:

涉及表数据为:select、insert、update、delete、alter(更改表)、index(索引);视图的为create view、show view;存储过程为alter routine、create routine、execute(执行存储过程);数据库表有create、drop、grant option;触发器为trigger。


2 问题:

1 windows安装mysql后,切换其他权限用户。

答:如果直接打开Mysql Command Line Client,则直接是mysql的root用户,如果要切换,在安装目录下,如C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin下,输入mysql -uxx -pxx 即可,切换用户

2 mysql数据库中权限表位置。mysql数据库中,user用户账号,db库级别权限,tables_priv:表级别权限、colums_priv:列级别权限、procs_priv:存储过程和存储函数相关的权限和proxies_priv:代理用户权限

3 出现ERROR 1045 (28000): Access denied for user 'zhou1'@'localhost' (using password:
YES)

问题是mysql -uzhou1 -p12;   其中密码被看成12;    ,切记不要加;



3 数据库操作:



赋予权限后需要 #重新载入赋权表  ****************************
FLUSH PRIVILEGES;
 

整个服务器:grant ALL  和revoke  ALL
整个数据库:on  database.*
特定表:database.table

操作外键权利:grant references on testdb.* to developer@’192.168.0.%’;


grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on *.* to 'dba'@'localhost’

proxies_priv代理用户权限


1 创建新用户:
CREATE USER 'zhou1'@'localhost' IDENTIFIED BY '12345';
CREATE USER 'zhou2'@'localhost' IDENTIFIED BY '12345';

CREATE USER 'zhou3'@'localhost' IDENTIFIED BY '12345';


实例:

(1)CREATE USER 'zhou4'@'localhost' IDENTIFIED BY '12345'; (会在mysql数据库的user表中添加用户,该用户无任何权限)

  (2)grant select on test.* to zhou3@'%' identified by 'userPwd' with grant option

           会在user表添加无任何权限的用户zhou3,同时会在db表添加用于select和grant权限的用户。




2 赋予zhou1查询权限
GRANT select ON mysqlTest.*  TO 'zhou1'@'localhost';      在mysql的db表中,收回权限后,记录删除

对应收回:
revoke select on  mysqlTest.* from zhou1@localhost;

********赋予什么权限,就要删除对应的权限,否则会抛出:There is no such grant defined for user 'zhou1XXxxxx


其他实例:
GRANT select ON mysqlTest.class  TO 'zhou2'@'localhost'  在mysql中的tables_priv表中,收回权限后,记录删除。

revoke select on mysqlTest.class from zhou2@localhost;

GRANT create ON mysqlTest.class  TO 'zhou3'@'localhost'


赋予zhou1所有数据库所有权限
GRANT ALL PRIVILEGES  ON *.*  TO 'zhou1'@'localhost'        此时会向mysql中的user表中添加信息  ********* 注意在grant all权限中,不包含Grant_priv权限
FLUSH PRIVILEGES;

REVOKE ALL PRIVILEGES ON *.* FROM zhou1@localhost;  

(1)当前用户的权限
显示权限:show grants;
显示某个用户的权限;show grants for  'zhou1'@'localhost'

(2)查看某个用户的权限

show grants for 'jack'@'%';
(3)回收权限

revoke delete on *.* from 'jack'@'localhost';

(4)删除用户
 drop user 'jack'@'localhost';

(5)对账户重新命名

rename user 'jack'@'%' to 'jim'@'%';
(6)修改密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
root可以用
mysqladmin -uroot -p123456 password 1234abcd

(7)赋予权限与收回权限

    #收回赋权权限  
     REVOKE GRANT OPTION ON *.* FROM 'test'@'%'; 

4 Mysql主从复制(Replication)

复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程(参考网址:http://www.cnblogs.com/zgx/archive/2011/09/13/2174823.html)


实现主写从读,减少服务器的压力


5 注意问题

(1)grant all 权限,中all不包含grant权限,即此用户没有向其他用户赋权的权限,如果需要需要单独开。

(2)查看视图的权限,grant select db.*,中*包含了所有的表和视图等

(3)当有select权限时,视图show view权限可不写。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值