oracle创建用户注意事项
oracle 向表中插入数据时,提示对表空间无权限解决办法:
在sys用户下授予用户权限:
grant unlimited tablespace to userName;
userName是要获得权限的用户。
创建用户前面加C##前缀,解决方法是安装的时候不要勾选创建为容器数据库
创建脚本:11.sql:
-- 01 创建表空间
-- 注意表空间的路径 根据实际安装环境进行调整
CREATE TABLESPACE ts_seckey_admin
LOGGING
DATAFILE '/home/oracle/orcldb/oradata/ORCL/ts_seckeymng_admin.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE ts_seckey_op
LOGGING
DATAFILE '/home/oracle/orcldb/oradata/ORCL/ts_seckeymng_op.dbf' SIZE 200M
EXTENT MANAGEMENT LOCAL;
ALTER DATABASE DATAFILE '/home/oracle/orcldb/oradata/ORCL/ts_seckeymng_admin.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
ALTER DATABASE DATAFILE '/home/oracle/orcldb/oradata/ORCL/ts_seckeymng_op.dbf' AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED;
commit;
-- 02 创建方案 (创建用户)
CREATE USER C##SECMNG PROFILE DEFAULT IDENTIFIED BY SECMNG DEFAULT TABLESPACE USERS ACCOUNT UNLOCK;
-- 资源和登录权限
GRANT resource TO C##SECMNG;
GRANT create session TO C##SECMNG;
-- 创建 网点信息表 --编号 名称 描述 授权码 状态(0可用 1不可用)
CREATE TABLE C##SECMNG.SECNODE(
id char(4) PRIMARY KEY,
name VARCHAR2(128) NOT NULL,
nodedesc VARCHAR2(512),
createtime date,
authcode NUMBER(12),
state NUMBER(4)
)TABLESPACE ts_seckey_admin;
INSERT INTO C##SECMNG.secnode VALUES('0001', '网银中心', '北京金融街23号', '15-7月-15', 1, 0);
INSERT INTO C##SECMNG.secnode VALUES('1111', '广东分中心1111', '广州天河金融', '15-7月-15', 1111, 0);
commit;
-- 创建 网点密钥表, 客户端网点 服务器端网点 密钥号 密钥产生时间 密钥状态
CREATE TABLE C##SECMNG.SECKYEINFO(
clientid char(4) constraint secmng_seckeynode_clientid_fk references C##SECMNG.SECNODE(id),
serverid char(4) constraint secmng_seckeynode_serverid_fk references C##SECMNG.SECNODE(id),
keyid NUMBER(9) PRIMARY KEY,
createtime date,
state NUMBER(4),
seckey VARCHAR2(512)
)TABLESPACE ts_seckey_admin;
--创建索引 在新的表空间上
CREATE INDEX C##SECMNG.IX_SECKYEINFO_clientid ON C##SECMNG.SECKYEINFO(clientid) TABLESPACE ts_seckey_admin;
commit;
-- keysn序列号
CREATE TABLE C##SECMNG.KEYSN(
ikeysn number(12) PRIMARY KEY
) TABLESPACE ts_seckey_admin;
INSERT INTO C##SECMNG.KEYSN(ikeysn) VALUES (1);
commit;
CREATE TABLE C##SECMNG.SRVCFG(
key VARCHAR2(64),
valude VARCHAR2(128)
)TABLESPACE ts_seckey_admin;
-- 创建 交易信息表 交易者 交易时间 交易事件 交易描述 (什么人 在什么时间 干了什么事)
CREATE TABLE C##SECMNG.TRAN(
iID Number(12) PRIMARY KEY,
tran_operator NUMBER,
trantime date,
tranid NUMBER(4),
trandesc VARCHAR2(512)
)TABLESPACE ts_seckey_op;
-- 创建索引
CREATE INDEX C##SECMNG.IX_TRAN_tran_operator ON C##SECMNG.TRAN(tran_operator) TABLESPACE ts_seckey_op;
-- 创建触发器 自增字段
CREATE SEQUENCE C##SECMNG.SEQiID INCREMENT BY 1 START WITH 1
MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 NOORDER;
CREATE OR REPLACE TRIGGER C##SECMNG.SEQiID
BEFORE INSERT ON C##SECMNG.TRAN
for each row
begin
select C##SECMNG.SEQiID.nextval into :new.iID from dual;
end;
/
INSERT INTO C##SECMNG.TRAN(tran_operator, trantime, tranid, trandesc) VALUES(1, '15-7月-15', 1, '创建网银总节点-测试数据');
commit;
------停止-----
-- 04创建新用户方案 通过 SECMNGUSER1 来访问数据库, 让管理终端系统用
CREATE USER C##SECMNGADMIN PROFILE "DEFAULT" IDENTIFIED BY "123456" DEFAULT TABLESPACE "USERS" ACCOUNT UNLOCK;
GRANT "CONNECT" TO C##SECMNGADMIN;
GRANT SELECT ANY TABLE TO C##SECMNGADMIN;
GRANT resource TO C##SECMNGADMIN;
GRANT create session TO C##SECMNGADMIN;
GRANT DELETE ON C##SECMNG.SRVCFG TO C##SECMNGADMIN;
GRANT INSERT ON C##SECMNG.SRVCFG TO C##SECMNGADMIN;
GRANT UPDATE ON C##SECMNG.SRVCFG TO C##SECMNGADMIN;
GRANT DELETE ON C##SECMNG.SECNODE TO C##SECMNGADMIN;
GRANT INSERT ON C##SECMNG.SECNODE TO C##SECMNGADMIN;
GRANT UPDATE ON C##SECMNG.SECNODE TO C##SECMNGADMIN;
GRANT DELETE ON C##SECMNG.SECKYEINFO TO C##SECMNGADMIN;
GRANT INSERT ON C##SECMNG.SECKYEINFO TO C##SECMNGADMIN;
GRANT UPDATE ON C##SECMNG.SECKYEINFO TO C##SECMNGADMIN;
GRANT DELETE ON C##SECMNG.TRAN TO C##SECMNGADMIN;
GRANT INSERT ON C##SECMNG.TRAN TO C##SECMNGADMIN;
GRANT UPDATE ON C##SECMNG.TRAN TO C##SECMNGADMIN;
commit;
-- Insert Into SECMNG.SECKYEINFO(clientid, serverid, keyid, createtime, state, seckey)
-- values ('1111', '0001', 1, to_date('2015-07-14 21:09:09', 'yyyy-mm-dd hh24:mi:ss'), 0, 'zzz') ;