首页数据库mysql数据库权限 mysql 如何查看该数据库用户具有哪些权限

mysql数据库权限 mysql 如何查看该数据库用户具有哪些权限

编程之家2023-10-22251次浏览

大家好,今天来为大家解答mysql数据库权限这个问题的一些问题点,包括mysql 如何查看该数据库用户具有哪些权限也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

mysql数据库权限 mysql 如何查看该数据库用户具有哪些权限

mysql 如何查看该数据库用户具有哪些权限

1、use mysql

2、SELECT*FROMusers

就可以看到所有的使用者权限

有关db的数据是记录在Db(大小写要注意)这个数据表中,所以只要呼叫出Db的资料SELECT*FROMDb就可以看到你要的答案。

或者可以用:

SELECT*FROMDbWHEREDb='phplampDB'找出你要的答案

mysql数据库权限 mysql 如何查看该数据库用户具有哪些权限
扩展资料:

授予MySQL用户权限的语句

show grants for你的用户

比如:show grants for root@'localhost';

Grant用法:

GRANT USAGE ON*.* TO'discuz'@'localhost' IDENTIFIED BY PASSWORD

'*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';

mysql数据库权限 mysql 如何查看该数据库用户具有哪些权限

GRANT ALL PRIVILEGES ON `discuz`.* TO'discuz'@'localhost';

建立一个只可以在本地登陆的不能操作的用用户名 discuz密码为*****已经加密了的

然后第二句的意思是,给这个discuz用户操作discuz数据库的所有权限

使用GRANT

GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql> GRANT<privileges> ON<what>

-> TO<user> [IDENTIFIED BY"<password>"]

-> [WITH GRANT OPTION];

mysql怎么授予创建数据库的权限

MySQL命令行能否实现新建用户呢?答案无疑是肯定的。而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限。

首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。

注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。

用户:phplamp

用户数据库:phplampDB

1.MySQL命令行新建用户

//登录MYSQL

@>mysql-u root-p

@>密码

//创建用户

mysql> insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:phplamp密码为:1234的用户。

//退出后登录一下

mysql>exit;

@>mysql-u phplamp-p

@>输入密码

mysql>登录成功

2.MySQL命令行为用户授权

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.

@>mysql-u root-p

@>密码

//首先为用户创建一个数据库(phplampDB)

mysql>create database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限

@>grant all privileges on phplampDB.* to phplamp@localhost identified by'1234';//这里需要注意,如果发现找不到用户,需要执行命令 flush privilieges;

//刷新系统权限表

mysql>flush privileges;

mysql>其它操作

//如果想指定部分权限给一用户,可以这样来写:

mysql>grant select,update on phplampDB.* to phplamp@localhost identified by'1234';

//刷新系统权限表。

mysql>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。

MySQL的权限有哪些

一.权限表

mysql数据库中的3个权限表:user、db、 host

权限表的存取过程是:

1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;

2)通过权限验证,进行权限分配时,按照useràdbàtables_privàcolumns_priv的顺序进行分配。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。

二.MySQL各种权限(共27个)

(以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)

1. usage

连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。

mysql> grant usage on*.* to‘p1′@’localhost’ identified by‘123′;

该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。

2. select

必须有select的权限,才可以使用select table

mysql> grant select on pyt.* to‘p1′@’localhost’;

mysql> select* from shop;

3. create

必须有create的权限,才可以使用create table

mysql> grant create on pyt.* to‘p1′@’localhost’;

4. create routine

必须具有create routine的权限,才可以使用{create|alter|drop}{procedure|function}

mysql> grant create routine on pyt.* to‘p1′@’localhost’;

当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:

mysql> show grants for‘p1′@’localhost’;

+—————————————————————————+

Grants for p1@localhost

+————————————————————————–+

| GRANT USAGE ON*.* TO‘p1′@’localhost’ IDENTIFIED BY PASSWORD‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257′|

| GRANT SELECT, CREATE, CREATE ROUTINE ON `pyt`.* TO‘p1′@’localhost’|

| GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `pyt`.`pro_shop1` TO‘p1′@’localhost’|

+————————————————————————————-+

5. create temporary tables(注意这里是tables,不是table)

必须有create temporary tables的权限,才可以使用create temporary tables.

mysql> grant create temporary tables on pyt.* to‘p1′@’localhost’;

[mysql@mydev~]$ mysql-h localhost-u p1-p pyt

mysql> create temporary table tt1(id int);

6. create view

必须有create view的权限,才可以使用create view

mysql> grant create view on pyt.* to‘p1′@’localhost’;

mysql> create view v_shop as select price from shop;

7. create user

要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。

mysql> grant create user on*.* to‘p1′@’localhost’;

或:mysql> grant insert on*.* to p1@localhost;

8. insert

必须有insert的权限,才可以使用insert into….. values….

9. alter

必须有alter的权限,才可以使用alter table

alter table shop modify dealer char(15);

10. alter routine

必须具有alter routine的权限,才可以使用{alter|drop}{procedure|function}

mysql>grant alter routine on pyt.* to‘p1′@’ localhost‘;

mysql> drop procedure pro_shop;

Query OK, 0 rows affected(0.00 sec)

mysql> revoke alter routine on pyt.* from‘p1′@’localhost’;

[mysql@mydev~]$ mysql-h localhost-u p1-p pyt

mysql> drop procedure pro_shop;

ERROR 1370(42000): alter routine command denied to user‘p1′@’localhost’ for routine‘pyt.pro_shop’

11. update

必须有update的权限,才可以使用update table

mysql> update shop set price=3.5 where article=0001 and dealer=’A';

12. delete

必须有delete的权限,才可以使用delete from….where….(删除表中的记录)

13. drop

必须有drop的权限,才可以使用drop database db_name; drop table tab_name;

drop view vi_name; drop index in_name;

14. show database

通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。

对于p1@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:

mysql> show databases;

+——————–+

| Database|

+——————–+

| information_schema|

| pyt|

| test|

+——————–+

15. show view

必须拥有show view权限,才能执行show create view。

mysql> grant show view on pyt.* to p1@localhost;

mysql> show create view v_shop;

16. index

必须拥有index权限,才能执行[create|drop] index

mysql> grant index on pyt.* to p1@localhost;

mysql> create index ix_shop on shop(article);

mysql> drop index ix_shop on shop;

17. excute

执行存在的Functions,Procedures

mysql> call pro_shop1(0001,@a);

+———+

| article|

+———+

| 0001|

| 0001|

+———+

mysql> select@a;

+——+

|@a|

+——+

| 2|

+——+

18. lock tables

必须拥有lock tables权限,才可以使用lock tables

mysql> grant lock tables on pyt.* to p1@localhost;

mysql> lock tables a1 read;

mysql> unlock tables;

19. references

有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。

20. reload

必须拥有reload权限,才可以执行flush [tables| logs| privileges]

mysql> grant reload on pyt.* to p1@localhost;

ERROR 1221(HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

mysql> grant reload on*.* to‘p1′@’localhost’;

Query OK, 0 rows affected(0.00 sec)

mysql> flush tables;

21. replication client

拥有此权限可以查询master server、slave server状态。

mysql> show master status;

ERROR 1227(42000): Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation

mysql> grant Replication client on*.* to p1@localhost;

或:mysql> grant super on*.* to p1@localhost;

mysql> show master status;

+——————+———-+————–+——————+

| File| Position| Binlog_Do_DB| Binlog_Ignore_DB|

+——————+———-+————–+——————+

| mysql-bin.000006| 2111|||

+——————+———-+————–+——————+

mysql> show slave status;

22. replication slave

拥有此权限可以查看从服务器,从主服务器读取二进制日志。

mysql> show slave hosts;

ERROR 1227(42000): Access denied; you need the REPLICATION SLAVE privilege for this operation

mysql> show binlog events;

ERROR 1227(42000): Access denied; you need the REPLICATION SLAVE privilege for this operation

mysql> grant replication slave on*.* to p1@localhost;

mysql> show slave hosts;

Empty set(0.00 sec)

mysql>show binlog events;

+—————+——-+—————-+———–+————-+————–+

| Log_name| Pos| Event_type| Server_id| End_log_pos|Info|+—————+——-+————–+———–+————-+—————+

| mysql-bin.000005| 4| Format_desc| 1| 98| Server ver: 5.0.77-log, Binlog ver: 4||mysql-bin.000005|98|Query|1|197|use `mysql`; create table a1(i int)engine=myisam|

……………………………………

23. Shutdown

关闭MySQL:

[mysql@mydev~]$ mysqladmin shutdown

重新连接:

[mysql@mydev~]$ mysql

ERROR 2002(HY000): Can’t connect to local MySQL server through socket‘/tmp/mysql.sock’(2)

[mysql@mydev~]$ cd/u01/mysql/bin

[mysql@mydev bin]$./mysqld_safe&

[mysql@mydev bin]$ mysql

24. grant option

拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)

mysql> grant Grant option on pyt.* to p1@localhost;

mysql> grant select on pyt.* to p2@localhost;

25. file

拥有file权限才可以执行 select..into outfile和load data infile…操作,但是不要把file, process, super权限授予管理员以外的账号,这样存在严重的安全隐患。

mysql> grant file on*.* to p1@localhost;

mysql> load data infile‘/home/mysql/pet.txt’ into table pet;

26. super

这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。

mysql> grant super on*.* to p1@localhost;

mysql> purge master logs before‘mysql-bin.000006′;

27. process

通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。

mysql> show processlist;

+—-+——+———–+——+———+——+——-+——————+

| Id| User| Host| db| Command| Time| State| Info|

+—-+——+———–+——+———+——+——-+——————+

| 12| p1| localhost| pyt| Query| 0| NULL| show processlist|

+—-+——+———–+——+———+——+——-+——————+

另外,

管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*

mysql> grant super on pyt.* to p1@localhost;

ERROR 1221(HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

mysql> grant super on*.* to p1@localhost;

Query OK, 0 rows affected(0.01 sec)

OK,本文到此结束,希望对大家有所帮助。

服务器繁忙,服务器繁忙是怎么回事晶体结构数据库 美国矿物学家晶体结构数据库怎么用