用户管理
创建用户:
LY用户不能使用数据库
CREATE USER LY IDENTIFIED BY OracleCancer0720 ;用户LY 密码OracleCancer0720
DEFAULT TABLESPACE users ;工作表空间,系统自带users
TEMPORARY TABLESPACE temp ;临时工作表空间,temp
QUOTA 1M ON USERS ;用户配额表空间为1M
ACCOUNT LOCK; ;用户被锁定
更改用户:
ALTER USER LY
DEFAULT TABLESPACE t1
QUOTA 2M ON t1
ACCOUNT UNLOCK
/
这里很神奇 不能用分号 要用“/”
删除用户:
DROP USER LY CASCADE;将该用户所创建的所有对象删除
查看用户:
COLUMN username FORMAT a10
//设置各列长度
SELECT username,profile,account_status,created
FROM dba_users
WHERE username = ‘LY’;
DESC dba_users //降序显示表各列(诸如此类无法使用ASC)
SELECT TABLESPACE_NAME,USERNAME,BLOCKS
FROM DBA_TS_QUOTAS; //查询用户所使用的表空间 及其配额
权限管理
1) 系统权限(CREATE SESSION)
GRANT CREATE SESSION TO LY;
2) 为用户授予某角色所具有的所有权限
CREATE ROLE R1;
GRANT CREATE SESSION,CREATE TABLE,CREATE TRIGGER,CREATE PROCEDURE
TO RI
WITH ADMIN OPTION; //允许被授权对象将其权限授予其他用户
GRATN R1 TO LY;
GRATN GRANT ANY ROLE TO LY; //允许被授权对象将其权限授予其他用户
3) 回收系统权限
首先要查看该用户所具有的系统权限,然后将其收回。
SELECT * FROM USER_SYS_PRIVS; //这里不理解,我能找到200行,但是如果增加一句:where username = ‘LY’(我已建立该用户)会提示未指定行
(以下为假设LY用户已有这两样权限)
REVOKE CREATE SESSION,GRANT ANY ROLE
FROM LY;
4) 为用户授予对象权限
GRANT SELECT ON sys.tables TO LY;
基本对象管理之序列
CREATE SEQUENCE se_id INCREMENT BY 1 START WITH 5 MAXVALUE 100;
创建序列,名为se_id,从数字5开始每次增长1,最大增长至100
于表中的应用:
INSERT INTO tables VALUE(se_id.NEXTVAL);