经典SQL学习笔记 (六)-用户管理、视图、序列、索引、权限

来源:互联网 发布:淘宝上如何买bb弹的枪 编辑:程序博客网 时间:2024/06/16 03:29

用户管理、视图、序列、索引、权限

用户管理

--连接数据库CONN 用户名/密码@本地网络服务名;CONN SYS/ITANY AS SYSDBA; --连接超级管理员数据库CONN / AS SYSDBA;SHOW USER;  --查看数据库DISCONNECT  简写为DISC --断开连接DISC --断开连接EXIT --退出用户EDIT   盘符:/文件名   简写为ED --编辑文件 START  盘符:/文件名SPOOL  盘符:/文件名    例:d:\dd.sqlSPOOL OFF      --保存信息1)创建用户语法:create user 用户名 identified by 密码;create user wzl identified by itany123;--授予对象权限语法:grant 对象权限 onto 用户   grant 权限 to 用户 with grant option | with admin optionwith grant option 系统权限with admin option 对象权限--权限的传递sys->u1->u2如果收回u1的权限,问u2的权限是否存在?A:u2的系统权限存在,u2的对象权限不存在--------角色:一组权限的组合,简化权限的管理预定义角色:  connect 角色、resource 角色、dba 角色自定义角色:  语法:create role 角色名 identified by 密码 ;grant 权限 to 角色名;grant 角色名 to 用户;revoke 权限 from 用户;revoke 角色 from 用户;DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 grant dba to sx;--锁定用户alter user 用户名 account lock; --锁定用户alter user sx account unlock;  --解锁用户--修改密码alter user 用户名 identified by 密码;alter user 用户名 password expire;conn sys as sysdba;--删除用户 drop user 用户名 cascade;

视图

视图 view数据字典:数据库的系统信息。基表和视图基表:普通的用户是不能访问基表的,只有超级管理员可以访问视图:是一张特殊的表,是一个虚拟表,结构上与表相同,实际上视图中封装了一条查询语句视图中的数据来自于查询语句所对应的表,在引用视图时会动态生成user_xxx:当前用户所拥有的信息all_xxx;当前用户所拥有的+可以访问别人的信息dba_xxx:所有用户的所有信息(dba)视图与表的区别:1、表:占用空间,视图:不占用空间2、视图提高数据的安全性3、视图可以 简化复杂查询,4、视图不可以创建索引,导致他的查询的速度变慢创建视图语法:create [or replace] view 视图名 as 子查询 with read only|with check option;with read only:创建只读视图。with check option:以后对该视图插入、修改、删除操作时,都会自动加上子查询中的条件create view v1 as select empno,ename,hiredate from emp;create or replace view v_emp20 as select * from emp where deptno=20 with read only;删除视图:drop view 视图名注:视图的创建需要具有相应的权限 grant create view to scott;update v_emp20 set sal=4444 where ename='SCOTT';对视图的插入、修改、删除,实际是删除原表数据,但视图一般主要用于数据的检索如果不希望视图被更新,可以创建只读视图read only

序列

--序列(sequeence):一组连续的而不重复的值创建序列语法:create sequence 序列名;序列的属性5、序列sequence:一组连续且不重复的值自增 自动增长Oracle中使用序列实现自增,序列是使用对象存在的SQL Server:identity(1,4)  种子 增量MySQL:auto_increment创建序列:create sequence 序列名[increment by n]  ----- 每次加几个[start with n]    ----- 从N开始计数[maxvalue n|nomaxvalue] ----- 最大值|不设最大值[minvalue n]      ----- 最小值[cycle|nocycle]   ----- 到最大值后从头开始|一直累加,不循环[cache n]         ----- 启用序列数字缓存机制,缓存中存放的序列值个数创建一个名为myseq的序列:create sequence myseq;调用序列:currval 表示产生序列的当前值 select myseq.currval from dual;nextval 表示生成序列的下一个值 select myseq.nextval from dual;注:当地一次调用序列,必须先调用nextval,取值后才会产生当前的值序列名.属性

索引权限

--索引1、create grant create session to sx;grant create table to sx;2)权限管理分类:系统权限、对象权限系统权限:允许用户对数据库执行的操作()对象权限:允许用户对特定的对象执行的操作(常用对象权限:selectinsertupdatedelete);授予系统权限的语法:GRANT privilege [, privilege...] TO user [, user| role, PUBLIC...][WITH ADMIN OPTION];        PUBLIC : 所有用户       WITH ADMIN OPTION 使用户同样具有分配权限的权利,可将此权限授予别人常用的系统权限:       CREATE SESSION                     创建会话       CREATE SEQUENCE                    创建序列       CREATE SYNONYM                     创建同名对象       CREATE TABLE                       在用户模式中创建表       CREATE ANY TABLE                   在任何模式中创建表       DROP TABLE                         在用户模式中删除表       DROP ANY TABLE                     在任何模式中删除表       CREATE PROCEDURE                   创建存储过程       EXECUTE ANY PROCEDURE              执行任何模式的存储过程       CREATE USER                        创建用户       DROP USER                          删除用户       CREATE VIEW                        创建视图查看系统权限:        dba_sys_privs  --针对所有用户被授予的系统权限        user_sys_privs --针对当前登陆用户被授予的系统权限回收系统权限语法:REVOKE {privilege | role} FROM {user_name | role_name | PUBLIC}revoke create session from sx;授予对象权限的语法:GRANT object_priv|ALL [(columns)] ON object TO {user|role|PUBLIC} [WITH GRANT OPTION];       ALL:所有对象权限       PUBLIC:授给所有的用户       WITH GRANT OPTION:允许用户再次给其它用户授权回收对象权限:REVOKE {privilege [, privilege...]|ALL} ON object FROM {user[, user...]|role|PUBLIC} [CASCADE CONSTRAINTS];查询权限分配情况:    数据字典视图          描述    ROLE_SYS_PRIVS            角色拥有的系统权限    ROLE_TAB_PRIVS            角色拥有的对象权限    USER_TAB_PRIVS_MADE      查询授出去的对象权限(通常是属主自己查)    USER_TAB_PRIVS_RECD      用户拥有的对象权限    USER_COL_PRIVS_MADE      用户分配出去的列的对象权限    USER_COL_PRIVS_RECD      用户拥有的关于列的对象权限    USER_SYS_PRIVS            用户拥有的系统权限    USER_TAB_PRIVS            用户拥有的对象权限    USER_ROLE_PRIVS           用户拥有的角色   
0 0
原创粉丝点击