mysql给用户开启event权限_mysql用户权限管理

权限管理:

用户:

系统层面:用户就是一个用户名===>用户名:密码

能做什么?

1、登录系统

2、管理系统对象

MySQL:

不再是单纯的用户名和密码

[email protected] 主机范围被称之为白名单

主机范围:

本地连接::

localhost

**

远程连接:**

10.0.0.200

oldboy.com

10.0.0.% 网段

10.0.0.5%

% XXXX 不建议用

开发申请用户时,提供给管理:

[email protected]%‘ 密码: xxxx

权限: ALL privileges

SELECT, INSERT, UPDATE, DELETE, CREATE, RELOAD,

SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER,

SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, DROP

LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT,

CREATE VIEW, SHOW VIEW, CREATE ROUTINE,

ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

开发人员可能会用到的权限:

create update insert select CREATE VIEW CREATE ROUTINE SHOW VIEW

CREATE TEMPORARY TABLES ALTER

grant 权限 on 权限作用范围 to 用户 identified by ‘密码‘

.

py.py.t1

grant create,update,insert,select ,CREATE VIEW on py. to [email protected]%‘ identified by ‘123‘;

select user,host,password from mysql.user;

开发人员申请用户流程:

1、IP段

2、用户名、密码要求

3、需要哪些权限

MySQL中创建一个数据库时通常是要设置字符集的,一般情况下我们会设定为UTF-8,但是通常还会出现一个数据库校对规则,

有好多可选择的。可选择utf8_general_ci

这里给出示范操作:

在创建mysql数据库的时候如何支持UTF-8编码

1、用工具

CHARSET字符集:选择 utf8

COLLATION数据库校验规则:选择 utf8_general_ci

2、用SQL语句

GBK: CREATE DATABASE test1 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF-8: CREATE DATABASE test2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建了一个utf8的mydb的数据库:

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;

指定部分权限给用户:

增加一个test1用户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能:

grant select,insert,update,delete on mydb.* to [email protected]%‘ identified by ‘123456‘;

FLUSH PRIVILEGES;#刷新系统权限表

授权test1所有权限:

GRANT ALL ON mydb.* TO username@localhost IDENTIFIED BY password‘;

查看创建用户的密码:【mysql所有的用户都存储在mysql.user这个表中】

mysql> select user,host,password from mysql.user;

ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘

查看数据库的表有哪些字段可以查询:authentication_string

help show;

创建

SHOW CREATE TABLE tbl_name;

select * from mysql.user ;

报错原因解决:

mysql5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。

select user,host,authentication_string from mysql.user;

等同于

use mysql;

select user,host,authentication_string from user;

update mysql.user setauthentication_string=password(“新密码”) where User=”test” and Host=”localhost”;

flush privileges;

设置mysql的root密码:

输入update mysql.user set authentication_string=password(‘密码‘)where user=‘账户‘;假设密码是123。

最后输入flush privileges;按回车,告诉mysql刷新一下系统权限,此时修改的密码才会生效。

update mysql.user set authentication_string=password(123456) where User="root" and Host="localhost";

mysql 跳过密码验证:

最好以管理员身份运行cmd,进入bin目录下,然后停止服务器,输入net stop mysql,

再输入 mysqld --skip-grant-tables (回车,启动mysql,意思是告诉mysql不需要登录验证)。

然后关掉cmd,再重新打开。

输入mysql -uroot -p 连续按两次回车按钮会直接进入mysql的控制台界面,此时发现登录 root 账号是不需要密码的。

删除mysql.user表中的用户:

Delete FROM mysql.user Where User="用户名" and Host=”localhost”;

flush privileges;

小节:

一、创建数据库:

1、 CREATE DATABASE 数据库名;

2、 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO [email protected] IDENTIFIED BY ‘密码‘;

3、 SET PASSWORD FOR

[email protected] = OLD_PASSWORD(‘密码‘);

依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。

二、修改密码:

mysql -u root -p

update mysql.user setauthentication_string=password(“新密码”) where User=”test” and Host=”localhost”;

flush privileges;

mysql5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。

三、删除用户:

mysql -u root -p

Delete FROM mysql.user Where User="用户名" and Host=”localhost”;

flush privileges;

创建用户

命令:CREATE USER [email protected] IDENTIFIED BY ‘password‘;

删除账户及权限:

drop user [email protected]%’;

drop user 用户名@ localhost;

注意:

创建一个只允许从本地登录的超级用户yan,并允许将权限赋予别的用户,密码为111

GRANT ALL PRIVILEGES ON . TO [email protected] IDENTIFIED BY ‘111‘ WITH GRANT OPTION;

GRANT命令说明:

ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等权限提到的权限。

ON 用来指定权限针对哪些库和表。

. 中前面的号用来指定数据库名,后面的号用来指定表名

TO 表示将权限赋予某个用户。

[email protected]%‘ 表示feihong用户,@后面接限制的主机,可以是IP、IP段、域名以及%,localhost表示本地

%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。

WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。

注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项

导致后来该用户不能使用GRANT命令创建用户或者给其他用户授权。

备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加了一个select权限,

然后又给用户添加了一个insert权限,那么该用户就同时拥有了select和insert权限。

四、为用户授权:

设置权限时必须给出一下信息

1,要授予的权限

2,被授予访问权限的数据库或表

3,用户名

grant和revoke可以在几个层次上控制访问权限

1,整个服务器,使用 grant ALL 和revoke ALL

2,整个数据库,使用on database.*

3,特点表,使用on database.table

4,特定的列

5,特定的存储过程

user表中host列的值的意义

% 匹配所有主机

localhost localhost不会被解析成IP地址,直接通过UNIXsocket连接

127.0.0.1 会通过TCP/IP协议连接,并且只能在本机访问;

::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1

授权格式:grant 权限 on 数据库.to [email protected] identified by “密码”;

eg: grant all privileges on.* to [email protected] identified by ‘hello‘ with grant option;

flush privileges; //要刷新权限

授权test用户拥有testDB数据库的所有权限:

grant all privileges on testDB.* to [email protected] identified by “1234”;

flush privileges; #刷新系统权限表

指定部分权限给用户:

grant select,update on testDB.* to [email protected] identified by “1234”;

flush privileges; #刷新系统权限表

for example:

创建一个网站用户(程序用户)

创建一个一般的程序用户,这个用户可能只需要SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES等权限如果有存储过程还需要加上EXECUTE权限,一般是指定内网网段192.168.100网段。

GRANT USAGE,SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ,CREATE TEMPORARY TABLES,EXECUTE ON test.* TO [email protected]%‘ IDENTIFIED BY [email protected];

创建一个普通用户(仅有查询权限)

GRANT USAGE,SELECT ON test.* TO [email protected]%‘ IDENTIFIED BY [email protected];

五、查看用户的权限:

SHOW GRANTS FOR [email protected]%‘;

SHOW GRANTS FOR [email protected];

SHOW GRANTS FOR [email protected]%‘;

六、回收权限:

REVOKE DELETE ON mydb.* FROM [email protected]%‘;

七、删除用户:

注意删除用户不要使用DELETE直接删除,因为使用DELETE删除后用户的权限并未删除,新建同名用户后又会继承以前的权限。正确的做法是使用DROP USER命令删除用户,[email protected]%‘用户采用如下命令:

DROP USER [email protected]%‘;

大家可以采用percona-toolkit工具中的pt-show-grants工具来辅助管理mysql权限

八、显示当前用户信息:

select user();

九、MySQL权限分配:

权限分布 :可能设置的权限

表权限:

‘Select‘, ‘Insert‘, ‘Update‘, ‘Delete‘, ‘Create‘, ‘Drop‘, ‘Grant‘, ‘References‘, ‘Index‘, ‘Alter‘

列权限:

‘Select‘, ‘Insert‘, ‘Update‘, ‘References‘

过程权限:

‘Execute‘, ‘Alter Routine‘, ‘Grant‘

原文:http://blog.51cto.com/firephoenix/2134775

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值