Oracle Database基础

1、安装与链接

1.下载Oracle Database express edition

可用Oracle帐号html

2425859797@qq.comsql

lyhJ0070998数据库

2.安装,安装过程会提示设置system用户的密码

3.CMD登陆,输入sqlplus命令,使用system用户登陆

4.使用navicat链接

在navicat中新建Oracle链接,填写链接属性express

Connection Name: 任填oracle

Connection Type: Basic(还有一种类型TNS)ide

Host Name/IP Address: localhost(IP或主机名)spa

Port: 1521(默认,可在listener.ora文件中修改)code

Service Name/SID: ORCL(listener.ora文件中没有这个SID链接,须要手动添加,expression版默认是XE)htm

User Name: system对象

Password: 123456

错误

错误一:ORA-12514: TNS:listener does not currently know of service requested in connect descriptor。缘由是listener.ora文件中没有SID为ORCL的链接信息,须要添加。

错误二:ORA-12518:TNS:listener could not hand off client connection由于使用的是expression版,Service Name应该改成XE。

2、Oracle中的用户角色与权限

  • sys 的角色是sysdba;system 的角色是sysoper
  • sys 具备create database的权限 system没有该权限
  • dba是一种role对应的是对Oracle实例里对象的操做权限的集合。
  • sysdba不是权限,当用户以sysdba身份登录数据库时,登录用户都会变成sys。
  • sysdba 是系统权限,dba是用户对象权限;sysdba身份登录能够打开,关闭数据库,dba不行。
  • sysdba,是管理oracle实例的
  • Oracle数据库中Schema和User的关系是一一对应的;决定用户访问的表的范围。
  • Oracle中的tablespace(表空间),对应一个数据文件,如 .ora文件;一个用户只属于一个表空间

CMD中使用sys用户登陆,用户名后加“as sysdba”:sys as sysdba

问题:哪些用户登陆时能够使用as sysdba或者as dba选项?

新建Oracle实例

用户默认密码

system 密码:manager
sys 密码:change_on_install
scott 密码:tiger(默认未解锁)

显示当前用户:show user

登陆sys或system用户,建立本身的用户

create user scott identified by tiger;

受权

grant dba to scott; --授予dba(database administrator)权限
grant connect, resource to scott;
grant unlimited tablespace to scott;--授予不限制的表空间
grant select any table to scott; --授予查询任何表
grant select any dictionary to scott;--授予 查询 任何字典 

删除用户

cascade为可选,级联删除用户下对象

drop user scott [cascade];

查看Oracle实例有哪些用户(dba_users表)

desc dba_users;
select username,account_status from dba_users;
查看当前用户和全部用户
select * from all_users;
select * from user_users;
查看角色(登陆用户)权限
select * from role_sys_privs;
查看用户或角色权限
select * from dba_sys_privs;
select * from user_sys_privs;
查看全部角色
select * from dba_roles;
查看那些用户具备sysdba或sysoper系统权限
select * from v$pwfile_users

解锁用户(例如:解锁OUTLN用户)

alter user outln account unlock;
alter user outln identified by outln;

查看用户有哪些表

select * from tab;

/*或*/

select table_name from user_tables where [rownum<=3];

user_tables 是查本身全部表
all_tables 所有表
dba_tables 所有表

3、建立表空间,用户和表

建立表空间

CREATE TABLESPACE [表空间名称] 
LOGGING DATAFILE [文件路径/文件名.ora] 
SIZE [初始容量,M为单位,如500M] 
autoextend on next [扩展容量大小] 
maxsize [最大容量]
[extent management local];

建立用户并指定表空间 

CREATE USER [用户名称]
PROFILE default 
IDENTIFIED BY [用户密码] 
DEFAULT TABLESPACE [受权访问的表空间名称] 
TEMPORARY TABLESPACE temp 
ACCOUNT UNLOCK;

为用户指定表空间

ALTER USER [用户名] DEFAULT TABLESPACE [表空间名];

一、一个用户只能属于一个表空间
二、同一个数据库用例中,用户名是不能重复的
三、不一样用户中能够建立同名的表
四、表空间建立后须要建立用户后才能使用,由于任何数据库对象都须要创建在一个数据用户上
五、链接dba权限的用户能够直接访问其余用户的数据库对象,不然须要相关用户受权
六、访问其余用户的数据库对象是时须要加上对象所属用户的用户名

查看Oracle实例下的全部表空间

select tablespace_name from dba_tablespaces;

 建立表

CREATE TABLE student(
id number(2) NOT NULL PRIMARY KEY,
name varchar2(30) default ' ' NOT NULL);

插入一条记录,查询表

INSERT INTO student (id,name) VALUES (001,'jim');
SELECT * FROM student;
相关文章
相关标签/搜索