设置mysql的服务器权限和用户权限以及权限详解

封root权限

默认root用户只能为本机locahost连接

更改服务器端口号

在mysql安装根目录下寻找mysql.ini配置文件,在[mysqld]下修改port的端口值。

为服务器创建用户

CREATE USER 'amsysop'@'XXXXX' IDENTIFIED BY '123456';

赋予用户的服务器端权限

GRANT PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'amsysop'@'XXXXX';


赋予用户操作数据库端权限

GRANT SELECT, INSERT, UPDATE, DELETE ON `amdata`.* TO 'amsysop'@'XXXXX';

flush privileges; 


解除用户的权限(!!!如需解除)

REVOKE GRANT OPTION ON *.* FROM 'amsysop'@'XXXXX'; 

REVOKE SELECT ON `amdata`.* FROM 'amsysop'@'XXXXX';

flush privileges;


权限归类

  • 服务器的基本权限归类
    • GRANT PROCESS:给普通用户授予查看所有用户线程/连接的权限

    • FILE:允许你通过MySQL服务器去读写服务器主机上的文件。但有一定限制,只能访问对任何用户可读的文件,通过服务器写的文件必须是尚未存在的,以防止服务器写的文件覆盖重要的系统文件。

    • 尽管有这些限制,但为了安全,尽量不要把该权限授予普通用户。并且不要以root用户来运行MySQL服务器,因为root用户可在系统任何地方创建文件。

    • REFERENCES:建立外键关系权限

    • INDEX:在某个表上具有维护索引的权限

    • ALTER:更改表结构的权限

    • SHOW DATABASES:控制用户执行SHOW DATABASES语句的权限。

    • SUPER:允许终止线程,使用mysqladmin debug命令,使用CHANGE MASTER,PURGE MASTER LOGS以及修改全局级变量的SET语句。SUPER还允许你根据存放在DES密钥文件里的密钥进行DES解密的工作。

    • CREATE TEMPORARY TABLES:允许创建临时表的权限

    • LOCK TABLES:可以使用LOCK TABLES语句来锁定数据表

    • EXECUTE:允许执行存储过程的权限,存储过程在MySQL的当前版本中还没实现

    • REPLICATION SLAVE:允许某个客户连接到镜像机制中的主服务器并请求发送二进制变更日志。该权限应授予从服务器用来连接主服务器的帐号。在4.0.2版这前,从服务器是用FILE权限来连接的。

    • REPLICATION CLIENT:允许查询镜像机制中主服务器和从服务器的位置

    • CREATE VIEW:创建视图,创建视图的时候,用户必须在基表上有select权限,否则创建失败。

    • SHOW VIEW:可以使用SHOW CREATE VIEW语句查看某个视图的创建语句

    • CREATE ROUTINE:

      1. 如果用户有create routine 权限那么他就可以创建procedure | function 。
      2. 如果用户创建了procedure | function 那么mysql 会自动赋予它对procedure | function 的alter routine和execute 权限。
    • ALTER ROUTINE:更改或者删除存储函数或者存储过程的权限

    • CREATE USER:可以创建,修改和删除用户

    • EVENT:Mysql事件调度器(Event Scheduler)类似于定时器,可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN … END);或者每隔固定间隔重复执行

    • TRIGGER:触发器被激活(由具有执行与触发器关联的表的INSERT、UPDATE或DELETE语句的权限的用户激活)时,触发器执行要求定义触发器的用户仍然拥有该表的trigger权限。
      1. 允许/限制对表的修改
      2. 自动派生列,如自增字段*
      3. 强制数据的一致性
      4. 提供审计和日志记录
      5. 防止无效的事务处理
      6. 启动复杂的业务逻辑

  • 数据库的基本权限归类
    • CREATE:允许使用语句创建新的数据库和表
    • DROP:允许使用删除(删除)现有数据库、表和视图的语句。 使用ALTER TABLE… 在已分区表上执行DROP PARTITION语句。 对于TRUNCATE TABLE也需要DROP权限。
    • ALTER:允许使用ALTER TABLE语句更改表的结构。 ALTER TABLE也需要CREATE和INSERT权限。 重命名表需要对旧表进行ALTER和DROP操作,对新表进行CREATE和INSERT操作。
    • INDEX:允许使用创建或删除(删除)索引的语句。 INDEX适用于现有的表。 如果您有一个表的CREATE权限,您可以在CREATE table语句中包含索引定义。
    • TRIGGER:当触发器被激活(由具有执行与触发器关联的表的INSERT、UPDATE或DELETE语句的权限的用户激活)时,触发器执行要求定义触发器的用户仍然拥有该表的trigger权限。
    • CREATE VIEW:允许使用CREATE VIEW语句。
    • SHOW VIEW:允许使用SHOW CREATE VIEW语句。 与EXPLAIN一起使用的视图也需要此特权。
    • EXECUTE:允许使用执行存储例程(存储过程和函数)的语句。
    • ALTER ROUTINE:允许使用改变或删除存储例程(存储过程和函数)的语句。
    • CREATE ROUTINE:允许使用语句来创建存储例程(存储过程和函数)。
    • CREATE TEMPORARY TABLES:使用CREATE temporary TABLE语句创建临时表。
    • LOCK TABLES:允许使用显式的LOCK TABLES语句锁定具有SELECT权限的表。 这包括使用写锁,它阻止其他会话读取被锁定的表。
    • EVENT:允许使用为事件调度程序创建、更改、删除或显示事件的语句。
    • REFERENCE:创建外键约束需要父表的REFERENCES特权。
    • GRANT:使您能够向其他用户授予或从其他用户撤消您自己拥有的那些特权。

你可能感兴趣的:(笔记,服务器,mysql,数据库)