权限表
- tables_priv表、columns_priv表和procs_priv表
- tables_priv表用来对表设置操作权限
- columns_priv表用来对表的某一列设置权限
- procs_priv表可以对存储过程和存储函数设置操作权限
权限表原理
账户权限
使用CREATE USER语句创建新用户
create user 'ttcuser'@'localhost' identified by '123456';
mysql> select password('neusoft');
mysql> create user 'ttcuser2'@'localhost' identified by '*39F58E32475715731C339136692B4BCF344268E7';
使用GRANT语句创建或授权
mysql> grant select ,update on *.* to 'test1'@localhot identified by '123456';
使用DROP USER语句删除用户
使用RENAME USER语句修改用户。
使用ALTER USER语句修改密码。
使用SET语句修改密码。
root用户修改自己的密码
使用UPDATE语句修改MySQL数据库中的user表。因为所有账户信息都保存在user表中,因此可以通过直接修改user表来改变root用户的密码。
root用户登录到MySQL服务器后,使用UPDATE语句修改MySQL数据库中的user表的authentication_string字段值,从而修改用户密码。使用UPDATE语句修改root用户密码的语句如下。
update mysql.user set authentication_string=password('123qwe') where user='root'
授权
授权就是为某个用户授予权限。在MySQL中,可以使用GRANT语句为用户授予权限。
权限的级别。授予的权限可以分为多层级别。
-
全局层级。全局权限作用于一个给定服务器上的所有数据库。这些权限存储在mysql.user表中。可以通过使用GRANT ALL ON *.*语法设置全局权限。
-
数据库层级。数据库权限作用于一个给定数据库的所有表。这些权限存储在mysql.db表中。读者可以通过使用GRANT ON db_name.*语法设置数据库权限。
-
子程序层级。CREATE ROUTINE、ALTER ROUTINE、EXECUTE和GRANT权限适用于已存储的子程序(存储过程或函数)。这些权限可以被授予全局层级和数据库级别。而且,除了CREATE ROUTINE外,这些权限可以被授予子程序层级,并存储在mysql.procs_priv表中。
-
权限的级别。授予的权限可以分为多层级别。
-
表层级。表权限作用于一个给定表的所有列。这些权限存储在mysql.tables_priv表中。可以通过GRANT ON table_name为具体的表名设置权限。
-
列层级。列权限作用于在一个给定表的单个列。这些权限存储在mysql.columns_priv表中。读者可以通过指定一个columns子句将权限授予特定的列,同时要在ON子句中指定具体的表。
使用GRANT语句创建一个新用户grantUser,密码为“grantpwd”。用户grantUser对所有的数据有查询、插入权限,并授予GRANT权限。
mysql> grant select ,insert on *.* to grantUser@localhost identified by 'grantpwd' with grant option;
如果是远程用户,使用%
mysql> grant select ,insert on *.* to grantUser@% identified by 'grantpwd' with grant option;
收回权限
收回所有权限。其基本语法如下。
REVOKE ALL PRIVILEGES,GRANT OPTION
FROM 'username'@'hostname'[,'username'@'hostname'][,…n];
使用REVOKE语句收回grantUser用户的的所有权限,包括GRANT权限。
mysql> revoke all privileges,grant option from grantUser@localhost;
查看权限
SHOW GRANTS语句可以显示指定用户的权限信息。
PLS/SQL
数据库程序设计语言,在各种环境下对ORACLE数据库进行访问。
结构
DECLARE
声明
BEGIN
执行
EXCEPTION
异常
END
自定义记录类型
%type的使用
声明数据结构和字段一致
%rowstype的使用
声明数据结构和表一致