oracle数据库创建用户,给用户授权,创建表的语句程序代码
- 格式:doc
- 大小:14.50 KB
- 文档页数:1
oracle创建⽤户、创建表空间、授权、建表的完整过程1.⾸先以sysdba的⾝份登录oracle conn /as sysdba 查询⽤户: select username from dba_users; 查询表空间 select username, default_tablespace from dba_users where username='⽤户名‘; 查询数据⽂件 select file_name, tablespace_name from dba_data_files;2.然后就可以来创建⽤户. create user ⽤户名 identified by 密码;3.修改⽤户的密码 alter user ⽤户名 identified by 新密码;4.创建⼀个表空间 create tablespace 表空间名 datafile '空间物理存储路径(f:\ts_zzg\zzg_data.dbf后缀随意)' size ⼤⼩(200M);5.将表空间分配给⽤户 alter user ⽤户名 default tablespace 表空间名;6.为⽤户分配权限 grant create session,create table,create view,create sequence,unlimited tablespace to ⽤户名; grant all privileges to ⽤户名;(全部权限)7.查看所有⽤户所在的表空间 select username,default_tablespace from dba_users;8.查询⽤户所具有的权限 select *from session_privs;9.删除⽤户及其相关对象 drop user ⽤户名;。
创建oracle数据库表空间,角色,用户的sql语句创建oracle 数据库表空间,角色,用户的sql语句1.创建角色CREATE ROLE "QIUDINGROLE" NOT IDENTIFIED;GRANT "CONNECT" TO "QIUDINGROLE";GRANT "DBA" TO "QIUDINGROLE";GRANT "RESOURCE" TO "QIUDINGROLE";2.创建表空间create tablespace safetempdatafile'D:\oracle\product\10.1.0\oradata\localpower\safetemp01.dbf'size32m autoextend on next32m maxsize unlimited logging extent management local segment space management auto;CREATE SMALLFILE TABLESPACE "EXAM" DATAFILE'D:\Soft\oracle\product\10.2.0\oradata\qiuding\EXAM' SIZE 100M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;BEGINDBMS_SERVER_ALERT.SET_THRESHOLD(9000,NULL,NULL,N ULL,NULL,1,1,NULL,5,' EXAM'); END;CREATE SMALLFILE TEMPORARY TABLESPACE "EXAM_TEMP" TEMPFILE'D:\Soft\oracle\product\10.2.0\oradata\qiuding\EXAM_tem p' SIZE 100M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;BEGINDBMS_SERVER_ALERT.SET_THRESHOLD(9000,NULL,NULL,NULL,NULL,1,1,NULL,5,' EXAM_TEMP'); END;3.创建用户create userEXAMidentified by "PASSWORD123"default tablespace "EXAM"temporary tablespace "EXAM_TEMP"profile DEFAULTACCOUNT UNLOCK;grant QIUDINGROLE to EXAM;grant unlimited tablespace to EXAM;4.创建备份目录并且付相应权限create directory dump_dir as 'D:\Soft\oracle\backup';grant read,write on directory dump_dir to EXAM;。
oracle数据库新建数据库语句以Oracle数据库新建数据库语句为题,我们将介绍如何在Oracle数据库中创建数据库。
Oracle是一种关系型数据库管理系统,可以用于存储和管理大量数据。
下面是创建数据库的步骤:1. 确认数据库实例已启动在创建新的数据库之前,确保Oracle数据库实例已经启动。
可以使用以下命令检查数据库实例的状态:```$ sqlplus / as sysdbaSQL> SELECT instance_name, status FROM v$instance;```2. 创建数据库使用CREATE DATABASE语句来创建新的数据库。
以下是一个示例:```CREATE DATABASE mydbUSER SYS IDENTIFIED BY passwordUSER SYSTEM IDENTIFIED BY passwordLOGFILE GROUP 1 ('/u01/oradata/mydb/redo01.log') SIZE 100M,GROUP 2 ('/u01/oradata/mydb/redo02.log') SIZE 100M,GROUP 3 ('/u01/oradata/mydb/redo03.log') SIZE 100MMAXLOGFILES 5MAXLOGMEMBERS 5MAXDATAFILES 100CHARACTER SET utf8NATIONAL CHARACTER SET utf8EXTENT MANAGEMENT LOCALDATAFILE '/u01/oradata/mydb/system01.dbf' SIZE 500M REUSESYSAUX DATAFILE '/u01/oradata/mydb/sysaux01.dbf' SIZE 500M REUSEDEFAULT TABLESPACE usersDATAFILE '/u01/oradata/mydb/users01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITEDTEMPFILE '/u01/oradata/mydb/temp01.dbf' SIZE 100M REUSE;```在上面的示例中,我们创建了一个名为mydb的数据库。
数据库创建权限语句数据库创建权限语句是用于在数据库中创建用户并授予相应的权限,以便用户可以访问和操作数据库中的数据。
下面列举了10个符合要求的数据库创建权限语句。
1. 创建用户并赋予所有权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;2. 创建用户并赋予特定数据库的所有权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' WITH GRANT OPTION;3. 创建用户并赋予特定表的读写权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.table_name TO 'username'@'localhost';4. 创建用户并赋予执行存储过程的权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT EXECUTE ON PROCEDURE database_name.procedure_name TO 'username'@'localhost';5. 创建用户并赋予特定列的查询权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT (column1, column2) ON database_name.table_name TO 'username'@'localhost';6. 创建用户并赋予创建表的权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT CREATE TABLE ON database_name.* TO 'username'@'localhost';7. 创建用户并赋予备份数据库的权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT BACKUP DATABASE ON *.* TO 'username'@'localhost';8. 创建用户并赋予导入数据的权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT LOAD DATA INFILE ON *.* TO 'username'@'localhost';9. 创建用户并赋予查看数据库结构的权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT SHOW VIEW ON database_name.* TO 'username'@'localhost';10. 创建用户并赋予限制连接数的权限:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password' WITH MAX_CONNECTIONS 10;以上是10个数据库创建权限语句,可以根据具体需求选择适合的语句来创建用户并授予相应的权限。
Oracle_基本建表语句--创建⽤户create user han identified by han default tablespaceusers Temporary TABLESPACE Temp;grant connect,resource,dba to han; //授予⽤户han开发⼈员的权利--------------------对表的操作----------------------------创建表create table classes(id number(9) not null primary key,classname varchar2(40) not null)--查询表select * from classes;--删除表drop table students;--修改表的名称rename alist_table_copy to alist_table;--显⽰表结构describe test --不对没查到-----------------------对字段的操作-------------------------------------增加列alter table test add address varchar2(40);--删除列alter table test drop column address;--修改列的名称alter table test modify address addresses varchar(40;--修改列的属性alter table test modicreate table test1(id number(9) primary key not null,name varchar2(34))rename test2 to test;--创建⾃增的序列create sequence class_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;select class_seq.currval from dual--插⼊数据insert into classes values(class_seq.nextval,'软件⼀班')commit;--更新数据update stu_account set username='aaa' where count_id=2;commit;--创建唯⼀索引create unique index username on stu_account(username); --唯⼀索引不能插⼊相同的数据--⾏锁在新打开的对话中不能对此⾏进⾏操作select * from stu_account t where t.count_id=2 for update; --⾏锁--alter table stuinfo modify sty_id to stu_id;alter table students drop constraint class_fk;alter table students add constraint class_fk foreign key (class_id) references classes(id);--外键约束alter table stuinfo add constraint stu_fk foreign key (stu_id) references students(id) ON DELETE CASCADE;--外键约束,级联删除alter table stuinfo drop constant stu_fk;insert into students values(stu_seq.nextval,'张三',1,sysdate);insert into stuinfo values(stu_seq.currval,'威海');select * from stuinfo;create table zhuce(zc_id number(9) not null primary key,stu_id number(9) not null,zhucetime date default sysdate)create table feiyong (fy_id number(9) not null primary key,stu_id number(9) not null,mx_id number(9) not null,yijiao number(7,2) not null default 0,qianfei number(7,2) not null)create talbe fymingxi(mx_id number(9) not null primary key,feiyong number(7,2) not null, //共7位数字,⼩数后有两位 class_id number(9) not null}create table card(card_id number(9) primary key,stu_id number(9) not null,money number(7,2) not null default 0,status number(1) not null default 0 --0表可⽤,1表挂失)--链表查询select c.classname||'_'||s.stu_name as 班级_姓名,si.address from classes c,students s , stuinfo si where c.id=s.class_id and s.id=si.stu_id;insert into students values(stu_seq.nextval,'李四',1,sysdate); insert into stuinfo values(stu_seq.currval,'南京');--函数select rownum,id,stu_name from students t order by id asc;--中间表实现多对多关联--(1 1, 1 n,n 1,n n )--1 n的描述 1的表不作处理 n的表有1表的字段--1 1的描述主外键关联--n n的描述中间表实现多对多关联create table course(course_id number(9) not null,couser_name varchar2(40) not null)alter table course to couse;create table stu_couse(stu_couse_id number(9) primary key,stu_id number(9) not null,couse_id number(9) not null)create unique index stu_couse_unq on stu_couse(stu_id,couse_id); --唯⼀学⽣create sequence stu_couse_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;create sequence couses_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;insert into course values(couses_seq.nextval,'计算机原理');insert into course values(couses_seq.nextval,'编译原理');insert into course values(couses_seq.nextval,'数据库原理');insert into course values(couses_seq.nextval,'数据结构');insert into course values(couses_seq.nextval,'计算机基础');insert into course values(couses_seq.nextval,'C语⾔初步');commit;insert into stu_couse values(stu_couse_seq.nextval,1,1);insert into stu_couse values(stu_couse_seq.nextval,1,3);insert into stu_couse values(stu_couse_seq.nextval,1,5);insert into stu_couse values(stu_couse_seq.nextval,1,5);insert into stu_couse values(stu_couse_seq.nextval,2,1);commit;select * from stu_couse;select * from course;--select s.stu_name,sc.couse_id, c.couser_name from students s,course c,stu_couse sc where stu_id=1--select couse_id from stu_couse where stu_id=1select cl.classname,s.stu_name,c.couser_name from stu_couse sc, students s,course c,classes cl where s.id=sc.stu_id and sc.couse_id=c.course_id and s.class_id=cl.id and s.id=1;--班级——姓名select c.classname,s.stu_name from students s,classes c wheres.class_id=c.id and s.id=2;select * from students s where s.id=2--班级——姓名——课程select cl.classname,s.stu_name,c.couse_name from stu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_id and s.id=26;--sql 语句的写法,现写出关联到的表,然后写出要查找的字段,第三写出关联条件,记住在写关联到的表时先写数据多的表,这样有助于提⾼sql的效率select c.couser_name,s.stu_name from stu_couse sc,students s,course c where c.course_id=1 and c.course_id=sc.couse_id and sc.stu_id=s.id;select s.stu_name from students s,stu_couse sc where s.id=sc.stu_id group by s.id,s.stu_name;select c.classname,count(sc.couse_id) from stu_couse sc,studentss,classes c where s.class_id=c.id and s.id=sc.stu_id group byc.classname;select s.stu_name, count(sc.couse_id) from stu_couse sc,studentss,classes cl where s.id=sc.stu_id group by s.id,s.stu_name having count(sc.stu_couse_id)>3;班级学⽣选课数量select cl.classname,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id ands.class_id=cl.id group bycl.classname;--班级学⽣选课数量select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by s.stu_name;select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc ,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.id;select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.stu_name;--班级学⽣所选课程id 所选课程名称--创建试图⽬的把表联合起来然后看成⼀个表,在与其他的联合进⾏查询create view xsxk as select cl.classname,s.stu_name,c.couse_id,c.couse_name from stu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_id and s.class_id=cl.id;select * from xsxkcreate view classstu as select s.id,c.classname,s.stu_name from students s,classes c where c.id=s.class_id;drop view classstu; --删除视图select * from classstu;create view stu_couse_view as select s.id ,c.couse_name from stu_couse sc,students s,couse c where s.id=sc.stu_id and sc.couse_id=c.couse_id; select * from stu_couse_view;create view csc as select cs.classname,cs.stu_name,scv.couse_name from classstu cs,stu_couse_view scv wherecs.id=scv.id;select * from csc;select * from classes cross join students; --全连接,相当于select * from classes,students;select * from classes cl left join students s on cl.id=s.class_id; --左连接不管左表有没有都显⽰出来select * from classes cl right join students s on cl.id=s.class_id; --右连接select * from classes cl full join students s on cl.id=s.class_id; --全连接insert into classes values(class_seq.nextval,'软件四班');create table sales(nian varchar2(4),yeji number(5));insert into sales values('2001',200);insert into sales values('2002',300);insert into sales values('2003',400);insert into sales values('2004',500);commit;select * from sales;drop table sale;select s1.nian,sum(s2.yeji) from sales s1,sales s2 wheres1.nian>=s2.nian group by s1.nian order by s1.nian desc;select s1.nian,sum(s2.yeji) from sales s1,sales s2 wheres1.nian>=s2.nian group by s1.nian;s年年业绩总和2001 2002002 5002003 9002004 1400create table test1(t_id number(4));create table org(org_id number(9) not null primary key,org_name varchar2(40) not null,parent_id number(9));create sequence org_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE; drop sequence org_seq;insert into org values(1,'华建集团',0);insert into org values(2,'华建集团⼀分公司',1);insert into org values(3,'华建集团⼆分公司',1);insert into org values(4,'华建集团财务部',1);insert into org values(5,'华建集团⼯程部',1);insert into org values(6,'华建集团⼀分公司财务处',2);insert into org values(7,'华建集团⼀分公司⼯程处',2);select * from org;--不正确不能实现循环select /doc/5e8716366.html_id , /doc/5e8716366.html_name ,b.parent_id from org a,org b where/doc/5e8716366.html_id=7 and a.parent_id=/doc/5e8716366.html_id;select * from org connect by prior parent_id=org_id start with org_id=7 order by org_id;select * from org connect by prior org_id=parent_id start with org_id=1 order by org_id;create table chengji(cj_id number(9) not null primary key,stu_cou_id number(9) not null,fen number(4,1));insert into chengji values(1,1,62);insert into chengji values(2,2,90);insert into chengji values(3,3,85);insert into chengji values(4,4,45);insert into chengji values(5,5,68);insert into chengji values(6,6,87);commit;select * from chengji;select * from stu_couse;--在oracle 中好像不适⽤ alter table chengji change stu_cou_idstu_couse_id;alter table shop_jb change price1 price double;学⽣姓名平均分select s.stu_name,avg(cj.fen) from stu_couse sc,chengji cj,students s where s.id=sc.stu_id andsc.stu_couse_id=cj.stu_couse_id group bys.id,s.stu_name;select s.stu_name from students s,stu_couse sc,chengji cj wheres.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id group bys.id,s.stu_name;select s.stu_name,cj.fen from students s,stu_couse sc,chengji cj where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60;学⽣姓名科⽬成绩select s.stu_name,c.couse_name,cj.fen from stu_couse sc,studentss,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60 order by=;select * from stu_couse;--集合运算--选择了课程3的学⽣ union 选择了课程5的学⽣并集--选择了课程3 或者选择了课程5的学⽣select s.stu_name from students s,couse c,stu_couse sc wheres.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3unionselect s.stu_name from students s,couse c,stu_couse sc wheres.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=5--选择了课程3,5,2 的学⽣ intersect 选择课程1,2,4的学⽣交集--求选择了课程 2 并且选择了课程 3 的学⽣交集select s.stu_name from students s,couse c,stu_couse sc wheres.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=2intersectselect s.stu_name from students s,couse c,stu_couse sc wheres.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3;--选择了课程3,5,8的学⽣ minus 选择了课程1,7,8的学⽣ --差集-- 求所有课程的成绩都⼤于 60 的学⽣差集select distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id andsc.couse_id=c.couse_id andsc.stu_couse_id=cj.stu_couse_id and cj.fen>60minusselect distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id andsc.couse_id=c.couse_id andsc.stu_couse_id=cj.stu_couse_id and cj.fen<60;⼀、何謂分區表(索引)?分區表是⼀種數據庫的物理存儲機制,它將⼀個表的數據存儲在不同的存儲⽚段中,這些不同的存儲⽚稱為區(partition)。
oracle赋权方法Oracle是一种关系型数据库管理系统,它提供了一种灵活且安全的赋权机制,可以控制用户对数据库对象的访问权限。
本文将介绍Oracle中常用的赋权方法。
1. 创建用户和角色:在Oracle中,可以使用CREATE USER语句创建用户,并使用CREATE ROLE语句创建角色。
用户可以拥有角色,而角色可以拥有权限。
创建用户和角色的语法如下:```CREATE USER username IDENTIFIED BY password; CREATE ROLE role;```2. 授权角色权限:可以使用GRANT语句将权限授予角色。
例如,将SELECT权限授予角色read_role:```GRANT SELECT ON table_name TO read_role;```3. 授权用户角色:可以使用GRANT语句将角色授予用户。
例如,将read_role角色授予用户username:```GRANT read_role TO username;```4. 授予用户直接权限:可以使用GRANT语句将权限直接授予用户。
例如,将SELECT权限直接授予用户username:```GRANT SELECT ON table_name TO username;```5. 撤销角色权限:可以使用REVOKE语句撤销角色的权限。
例如,撤销read_role角色的SELECT权限:```REVOKE SELECT ON table_name FROM read_role;```6. 撤销用户角色:可以使用REVOKE语句撤销用户的角色。
例如,撤销用户username的read_role角色:```REVOKE read_role FROM username;```7. 撤销用户直接权限:可以使用REVOKE语句撤销用户的直接权限。
例如,撤销用户username的SELECT权限:```REVOKE SELECT ON table_name FROM username;```8. 查看用户权限:可以使用SELECT语句查询用户拥有的权限。
Navicat创建oracle表空间、新建⽤户、授权1.利⽤数据库管理员账号:SYSTEM,再配合数据库管理⼝令,连接Oracle数据库。
登录界⾯:
2.创建表空间⽂件
进⼊如下界⾯
进⼊如下界⾯
弹出如下界⾯,输⼊表空间名称
最终结果:
2 .新建⽤户
弹出如下界⾯:
3.授权
***************
如果这⾥要设置sysdba权限(有了这个权限可以使⽤数据泵来实现数据的导⼊),那么DBA权限是没法赋予这个权限的。
这个时候需要进⼊sql plus
然后在窗⼝中输⼊⽤户名:sqlplus / as sysdba 密码:123456(初始密码)
连接到oracle数据库后,输⼊代码:grant connect, resource, dba, sysdba to adang(⽤户名);下⾯我们直接使⽤navicat测试⼀下我们刚才新建的表空间能不能连接成功。
在PLSQL中创建Oracle数据库Users用户并设置权限
1、首先在PLQL Developer 中打开数据库。
使用"sys" 用户,输入数据库名称,输入该数
据库”sys”用户的密码sysdba,在”Connect as”组合框中选中“SYSDBA”。
单击OK 按钮打开数据库。
2、创建”User”型用户“DXXFLD”。
找到“Users”文件夹,右键弹出菜单中,选中”New”,
弹出用户创建界面:
在其中输入要添加的用户名”DXXFLD”,并作其他设置如下:
户名连接到数据库。
然后通过“Quotas”选项卡设置用户权限:将“Tablespace”中选中“User”, 勾选“Unlimited”复选项(这个一定要选中啊,不然创建表的时候会提示没有表空间的访问权限
的)。
最后单击”Apply”按钮使各项设置起作用。
2、使用新创建的用户创建表。
在”Tables”文件夹上右键单击,选中弹出菜单中“New”选
项
在之后弹出属性页下,做如下设置:
然后再设置字段名等其他属性就和直接用“System”或“Sys”等表空间创建表一样了。
要说明的是使用自定义”Users”创建的表,其在PLSQL 中“Users“->”Tables”目录下才
可见。
oracle如何创建⽤户并赋予权限本⽂将从⽤户创建讲起,特别讲述Oracle授予⽤户权限的⼀个实例,希望对⼤家了解Oracle授予⽤户权限有所帮助。
这两天在测数据库同步软件的时候,需要在Oracle⾥创建⼀个⽤户名和密码均为SYSDATA的⽤户,找了找资料,创建成功,现将Oracle中⽤户的创建和授予命令摘录下来:1、Linux 下Oracle的启动以Oracle⾝份登录启动lsnrctl start 登录sqplus /nolog连接数据库connect/assysdba 启动数据库startup关闭数据库shutdown immediate2、在数据中创建⽤户名启动数据库后创建⽤户名连接超级⽤户connect system/admin system 系统⽤户名字 admin 密码创建⽤户名字create user SYSDATA identified by admin ⽤户名:SYSDATA 密码:admin 可以写Default tablespace user//指定存储对象使⽤的默认空间表默认是system Temporary tablespace temp; //保存临时对象所使⽤的空间表默认是system 上⾯的俩⾏,可以写空间表为user临时为temp;不写就默认3、添加⽤户的权限Grant是Oracle授予⽤户权限的如:1.Grant create session to SYSDATA;//授予SYSDATA连接数据的权限系统权限如下:系统特权允许执⾏的操作Create session 连接数据库Create sequence 创建序列Create synonym 创建同名对象Create table 创建表Create any table 创建任何模式的表Drop table 删除表Create procedure 创建存储过程Execute any procedure 执⾏任何模式的存储过程Create user 创建⽤户Create view 创建视图Drop user 删除⽤户Drop any table 删除任何模式的表4、向⽤户授予系统特权1.Grant execute any procedure toSYSDATA with admin option此句意思为为sha⽤户创建系统特权并且可以⽤SYSDATA为别的⽤户授予权限连接SYSDATA⽤户connect SYSDATA/admin 可以创建别的⽤户5、查看⽤户权限进⼊SYSDATA⽤户connect SYSDATA/admin1.Select * from user_sys_privs;可以查看到⼀个列表,列代表⽤户名权限是否可以给别的⽤户附加权限(N、Y)⾏代表权限都有那些6、撤销⽤户授予的权限必须连接connect system/admin撤销权限revoke是系统撤销权限的关键词1.Revoke execute any procedure from SYSDATA;7、更改⽤户密码进⼊SYSDATA⽤户connect SYSDATA/admin Password输⼊旧密码输⼊新密码俩边OK 或者⽤alter user SYSDATA identified by xinmima8、删除⽤户1. Connect system/admin2.Drop user SYSDATA;9、为⽤户授予⾓⾊1. Grant dba to SYSDATA;2.Grant connect to SYSDATA;Linux下的plsql创建⽤户1. create user SYSDATA identified by admin2. Default tablespace user3. Temporary tablespace temp;4. Granr unlimited tablespace to SYSDATA;//权限5.Grant dba to SYSDATA;//⾓⾊。
刚创建的用户怎样才能成功创建一个表当一个用户刚被创建时是不具备任何权限的,因此要在该用户模式下创建表,需授予CREATE SESSION、CREATE TABLE、以及UNLIMITED TABLESPACE(或分配配额)权限,因为:当用户要连接到数据库时必须拥有CREATE SESSION权限当用户要创建表时必须拥有CREATE TABLE权限,同时用户还需要在表空间中拥有配额或者被授予UNLIMITED TABLESPACE。
现在我们来做一个测试:1)、创建用户TEST,密码为passwd_1:SQL> CREATE USER testIDENTIFIED BY passwd_I1用户已创建2)当用TEST连接数据库时:SQL> conn test/passwd_1ERROR:ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied警告: 您不再连接到 ORACLE。
//因为缺少CREATE SESSION的权限,登陆失败。
3)利用SYS给TEST授予CREATE SESSION权限:SQL> grant create session to test;授权成功。
4)SQL> conn test/passwd_1已连接。
5)在test的方案中创建表exam1:SQL> create table exam1(student_id int,paper_id int);create table exam1ERROR 位于第 1 行:ORA-01031: 权限不足//因为未给TEST用户授予create table 权限,因此不能够创建表exam1. 6) 给TEST用户授予CRETE TABLE 权限SQL> grant create table to test;授权成功。
7)SQL> create table exam1(student_id int,paper_id int);create table exam1ERROR 位于第 1 行:ORA-01950: 表空间'SYSTEM'中无权限//因为在创建用户时没有指定表空间,因此默认的表空间是SYSTEM表空间,而TEST用户还需要在表空间SYSTEM中既没有拥有配额又没有被授予UNLIMITED TABLESPACE权限,因此对于这种情况有两种解决办法://在SYSTEM表空间中,给用户TEST分配15M的使用空间SQL> create table exam1(student_id int,paper_id int);表已创建第二种方法:SQL> grant unlimited tablespace to test(在system中授权)授权成功。
下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\oracle,数据库名与数据库SID号都输入:ora9i数据库安装完成后,有两个系统级的用户:1、system 默认密码为:manager2、sys 默认密码为:change_on_install在安装的数据库目录中找到\oracle\product\9.2\bin 中的sqlplus程序,运行:./sqlplus system/manager@ora9i用system用户创建自己的用户、权限;sql语句如下:1、创建用户:create user username identified by pwd default tablespace users Temporary TABLESPACE Temp;2、用户授权grant connect,resource,dba to business;3、提交:commit;如上面所述利用sqlplus以username 用户登陆,专输入:@创建数据库的脚本名称.sql回车,即可创建数据库中的表、视图、存储过程等。
如上面所述利用sqlplus以username 用户登陆,假设有两个数据库 9.0.1 与 9.0.21.导出数据exp system用户/system的密码@服务器名 owner用户名=“oradial ” fi le="oradial.dmp"说明:(1) 如果该命令是在本地执行,则不用指定服务器名(2) owner用户名,通过sys用户的登录所创建的用户名。
同时授予的权限包括connect , dba , resource ,还要创建表空间。
(3) system用户名,owner用户名是9.0.1数据库中的用户2.导入数据imp system用户/system的密码@服务器名 file=oradial.dmp fromuser(用户名)=oradial touser(用户名)=abc说明:(1) 如果该命令是在本地执行,则不用指定服务器名(2) touser用户名,通过sys用户的登录所创建的用户名。
oracle create user语句摘要:1.Oracle 创建用户的基本语法2.Oracle 创建用户的步骤3.Oracle 创建用户的注意事项正文:一、Oracle 创建用户的基本语法Oracle 数据库创建用户的基本语法如下:```CREATE USER [USERNAME] IDENTIFIED BY [PASSWORD]PROFILE [PROFILE_NAME]```- USERNAME:要创建的用户名- PASSWORD:用户的密码- PROFILE_NAME:可选项,指定用户所属的角色二、Oracle 创建用户的步骤1.打开Oracle SQL*Plus 或使用其他工具连接到Oracle 数据库。
2.输入以下命令,创建用户:```CREATE USER example_user IDENTIFIED BY example_password PROFILE default_role```3.如果要创建多个用户,可以使用以下命令:```CREATE USER example_user1 IDENTIFIED BY example_password1 CREATE USER example_user2 IDENTIFIED BY example_password2 ```三、Oracle 创建用户的注意事项1.用户名和密码必须符合Oracle 的命名规则,例如,用户名长度应在1 到30 个字符之间,密码长度应在8 到20 个字符之间。
2.在创建用户时,可以指定用户所属的角色。
如果不指定,则用户将默认属于"DEFAULT"角色。
3.在创建用户后,可以使用"ALTER USER"命令对用户进行修改,例如更改用户名、密码或角色等。
oracle添加新⽤户、赋值权限、新建表空间等(sqlplus中完成)在cmd下可以直接使⽤sqlplus⽆登陆状态进⼊sqlplusc:\> sqlplus /nolog使⽤system账号以sysdba的⾝份连接SQL> connect system/tukeping as sysdba查看当前⽤户SQL> show user新建⽤户SQL> create user tkp1 identified by tkp1;授权SQL> grant connect,resource to tkp1;退出sqlplusSQL> quit以tkp1⽤进⼊到sqlplusc:\> sqlplus tkp1/tkp1查看所有⽤户SQL> select * from all_users;退出SQL> quit以sysdba⾝份进⼊删除tkp1⽤户c:\> sqlplus system/tukepingSQL> drop user tkp1 cascade;创建表空间SQL> create tablespace test1 datafile 'd:\oracle\tablespace\tabletest1.dbf' size 50M;创建名为tkp1的⽤户,其缺省表空间为test1SQL> create user tkp1 identified by tkp1 default tablespace test1;查看系统能给的所有权限SQL>select name from sys.system_privilege_map;查看当前连接⽤户的所有权限SQL> select * from user_sys_privs;移除tkp1的sysdba权限SQL> revoke sysdba from tkp1;SQL>commit;关闭oracle数据库SQL>shutdown immediate;开启oracle数据库SQL>startup此外:可以⽤system账户以dba⾝份⽤PL/SQL进⼊,进⾏以上所有操作博外知识:drop user xxx cascade;(删除⽤户下⾯的所有对象,注意关键字cascade)drop tablespace xxx INCLUDING CONTENTS;(删除表空间)create user user1 identified by password default tablespace users temporary temp;(创建user1,密码为password,使⽤的表空间为tablespace)grant connect,resource,dba to user1;(赋予权限)connect sys/密码 as sysdba;ALTER USER "SCOTT" IDENTIFIED BY "*******" (修改SCOTT⽤户密码)ALTER USER "SCOTT" ACCOUNT UNLOCK(为SCOTT⽤户解锁)1.查看所有⽤户:select * from dba_user;select * from all_users;select * from user_users;2.查看⽤户系统权限:select * from dba_sys_privs;select * from all_sys_privs;select * from user_sys_privs;3.查看⽤户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;4.查看所有⾓⾊:select * from dba_roles;5.查看⽤户所拥有的⾓⾊:select * from dba_role_privs;select * from user_role_privs;显⽰当前连接⽤户:show user;ALTER USER test DEFAULT TABLESPACE users QUOTA UNLIMITED ON users; (修改⽤户默认表空间) ALTER USER test TEMPORARY TABLESPACE temp;(修改⽤户临时空间)。
oracle中新建⽤户和赋予权限1.新建个⽤户create user xxxxx(⽤户名) identified by "密码"alert user ⽤户名 identified by “新密码” --修改⽤户密码因为新建的⽤户和默认的⽤户是锁住的,没有权限。
所以新建⽤户后要给⽤户赋予权限grant dba to ⽤户名 --给⽤户赋予所有权限,connect是赋予连接数据库的权限,resource 是赋予⽤户只可以创建实体但是没有创建数据结构的权限。
grant create session to ⽤户名 --这个是给⽤户赋予登录的权限。
grant create table to ⽤户名 --给⽤户赋予表操作的权限grant unlimited tablespace to ⽤户名 --给⽤户赋予表空间操作的权限grant select any table to ⽤户名 --给该⽤户赋予访问任务表的权限同理可以赋予update 和delete 的grant select on srapp_hz_zhpt_yl.jggl to srapp_hz_zhpt_ylcs --这⾥是给srapp_hz_zhpt_ylcs⽤户赋予selectsrapp_hz_zhpt_yl⽤户的jggl表的查询的权限。
同理可以有alter,drop,insert等权限。
-----------------------------注意这个语句在没有访问另⼀个⽤户的权限情况下这个语句要在另⼀个⽤户登录情况下执⾏,这样才能⽣效。
-------------撤销权限基本语法同grant,关键字为revoke 如: revoke create tabel to ⽤户名就是取消这个⽤户的对表操作的权限。
-----------查看权限select * from user_sys_privs;//查看当前⽤户所有权限select * from user_tab_privs;//查看所⽤⽤户对表的权限-----------⾓⾊⾓⾊即权限的集合,可以把⼀个⾓⾊授予给⽤户,管理⾓⾊的权限⽐较简单,可以在⼀个⽤户下创建多个⾓⾊,⽤户只需要添加⾓⾊就可以管理权限了,便于⽤户管理权限。
Oracle创建⽤户并给⽤户授权查询指定表或视图的权限⽤DNINMSV31账户登录数据库进⾏如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUNDDEFAULT TABLESPACE "TBS_DNINMSV31"TEMPORARY TABLESPACE "TEMP2"QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "CONNECT" TO NORTHBOUND;ALTER USER NORTHBOUND DEFAULT ROLE NONE;GRANT CREATE SESSION TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;【注】:在⽤NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。
例如:select*from DNINMSV31.V_DNDEVICE; --可以正常执⾏select*from DNINMSV31.TB_DEVICE where rownum<5; --执⾏的时候会报表或视图不存在创建同义词供对⽅公司系统访问:CREATE SYNONYM V_DNDEVICE FOR DNINMSV31.V_DNDEVICE;CREATE SYNONYM V_DNSUBNE FOR DNINMSV31.V_DNSUBNE;CREATE SYNONYM V_DNPACKAGE FOR DNINMSV31.V_DNPACKAGE;CREATE SYNONYM V_DNPORT FOR DNINMSV31.V_DNPORT;第三⽅的系统直接通过这个同义词就可以访问到⽤户DNINMSV31中的视图。
1、创建用户,给该用户授权
Drop user clwz_user
删除用户名为“clwz_user”的用户,注意当删除该用户时,用户下的所有表,都会被删除。
CREATE USER CLWZ_USER IDENTIFIED BY CLWZPZXTSDGAB DEFAULT TABLESPACE clwz_dy TEMPORARY TABLESPACE clwz_dy PROFILE DEFAULT;
创建用户,用户名为“CLWZ_USER”,密码为“CLWZPZXTSDGAB”,默认的表空间为“clwz_dy”,
GRANT "DBA" TO "CLWZ_USER";
付给用户CLWZ_USER对oracle操作的dba权限
2、创建表
drop table vio_users;
删除表名为“vio_users”的表
Oracle中常用的数据类型
Char:存放定长字符数据
Varchar2:存放可变厂字符数据
Number(1,d):存放数值型数据,1代表总位数,d代表小数点厚位数
Date:存放日期
create table vio_users(
police_no varchar2(10) primary key,
name varchar2(20) not null,
password varchar2(20),
kind char(1),
csrq date,
xzqh varchar2(10),
privilege varchar2(30)
);
创建表“vio_users”,其中字段police_no为唯一索引字段,字段name为不可空,其他字段默认可空
Desc vio_users
查看表为vio_users的表结构
若想创建和表vio_users的表结构一样,也要其数据的话
Create table aa as select * from vio_users;
若想创建和表vio_users的表结构一样,不要其数据的话
Create table aa as select * from vio_users where rownum<1。