文章目录
一、登录oracle
重启服务器后启动oracle
su - oracle # 进入oracle的用户,读取oracle的配置文件
# 重启服务器后需要先启动监听
lsnrctl start # 启动监听
sqlplus / as sysdba # 以操作系统权限认证的oracle sys管理员登陆.
startup # 以默认参数文件开启实例,装载默认的数据库,并打开数据库。
select instance_name from v$instance; # 查询oracle的sid
oracle的登录方式:
sqlplus / as sysdba # 以操作系统权限认证的oracle sys管理员登录
sqlplus /nolog # 不暴露密码的登录方式
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Wed Dec 14 00:11:34 2022
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> connect taibai@prod
Enter password:
Connected.
SQL>
sqlplus scott/tiger # 非管理员用户登录
sqlplus # 不显露密码的登录方式
Enter user-name:sys
Enter password:password as sysdba # 以sys用户登陆的话 必须要加上 as sysdba 子句,其他用户直接输入密码即可
#### 内部切换用户
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Wed Dec 14 00:16:02 2022
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> connect /as sysdba
Connected.
SQL> connect scott/tiger
Connected.
SQL>
二、监听
本节参考:监听服务详解
监听服务的主要文件:
-
listener.ora
- listener.ora配置文件存在于oracle数据库服务端,默认位置为:$ORACLE_HOME/network/admin/listener.ora
- Oracle服务端需要开启一个监听器来试试监听有哪些客户端来请求连接我服务端,这个监听器的信息配置对应的就是listener.ora文件,此文件中定义了Oracle服务端所需要监听的端口协议以及实例SID。
文件内容如下:
# listener.ora Network Configuration File: /oradata/soft/oracle11g/product/11.2.0.3/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = #监听器名称Lisener,就是NetManager创建的名称 (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) #tcp协议,监听主机oracle11g的端口1521 ) ) ADR_BASE_LISTENER = /oradata/soft/oracle11g
-
tnsnames.ora
tnsnames.ora配置文件是一个用于解析名称的客户端文件,服务器上通常有一个副本以便在服务器上运行客户端。
# tnsnames.ora Network Configuration File: /oradata/soft/oracle11g/product/11.2.0.3/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. PROD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) # 数据库实例sid ) )
-
sqlnet.ora
该配置文件是可选的,可能存在于客户端或服务端,它设置的各种默认值会影响所有客户机和服务器。
三、用户
oracle安装后常用的默认三个用户:
- SYS用户: 超级管理员,权限最高,它的角色是DBA(数据库管理员)。具有创建数据库的权限。
- SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator(数据库管理员操作者),不具有创建数据库的权限。
- 普通用户,如系统安装时的scott用户,默认密码为tiger。普通用户的权限是SYS用户或者SYSTEM用户赋予的,若是没有赋予权限,则普通用户连基本的访问权限,连接权限都没有。
权限角色:
- connect角色:
授予最终用户的典型权限,最基本的权利,能够连接到oracle数据库,并对其他用户的表有访问权限,做select、update、insert等操作。
- resource角色:
是授予开发人员的,可以在自己的表空间创建表、序列
- dba角色:
是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限
创建用户及授权和删除用户:
create user 用户名 identified by 密码; # 创建用户
grant 权限 on 表空间.表名 to 用户名; # 赋权限给用户
# 删除用户
# 1、先删除连接进程
# 查询线程
select username,sid,serial# from v$session where username = '用户名'
# 删除线程
alter system kill session '4521,27770'
# 2、删除用户
drop user 用户名;
例子:
SQL> create user tai identified by bai; # 创建用户
User created.
SQL> grant connect,resource ,dba to tai; # 赋权限
Grant succeeded.
SQL> select username,sid,serial# from v$session where username='tai';
no rows selected
SQL> drop user tai;
User dropped.
四、一些sql语句
锁定和解锁用户,修改密码
# 锁定用户
alter user 用户名 account lock;
# 解锁用户
alter user 用户名 account unlock;
# 修改密码
alter user 用户名 identified by 密码;
例子:
SQL> connect tai/bai; # 切换tai用户/bai密码
Connected. # 切换成功
SQL> connect / as sysdba; # 切换sysdba用户
Connected. # 切换成功
SQL> alter user tai account lock; # 锁定tai用户
User altered. # 用户已修改
SQL> connect tai/bai; # 切换tai用户/bai密码
ERROR: # 失败
ORA-28000: the account is locked # 用户是锁定的
Warning: You are no longer connected to ORACLE. # 警告,你现在已不再连接oracle
SQL> alter user tai account unlock; # 解锁
SP2-0640: Not connected # 失败,由于没有连接oracle
SQL> connect / as sysdba; # 切换sysdba用户
Connected. # 切换成功
SQL> alter user tai account unlock; # 解锁tai用户
User altered. # 用户已修改
SQL> connect tai/bai; # 切换tai用户/bai密码
Connected. # 切换成功
SQL> alter user tai identified by tai; # 修改密码
User altered. # 用户已修改
SQL> connect tai/tai; # 切换tai用户/tai密码
Connected. # 切换成功
查看用户和一些信息
# 查看当前用户
show user;
# 查看当前用户表空间的表
select table_name from user_tables;
# 查看所有用户
select * from all_users;
表空间操作(创建,设置给用户,修改空间名,删除)
# 创建表空间
create tablespace 空间名 datafile '存放文件路径' size 空间大小;
# 设置当前用户默认使用的表空间
alter database default tablespace 表空间;
# 修改表空间的名字
alter tablespace 旧名 rename to 新名;
# 删除表空间(注意这里删除表空间的时候需要没有用户使用,才能删除)
drop tablespace 表空间名 including contents and datafiles;
例子:
SQL> create tablespace t1 datafile '/home/oracle/t1.dbf' size 50M; # 创建表空间
Tablespace created. # 表空间创建
SQL> alter database default tablespace t1; # 设置当前用户的表空间为t1
Database altered. # 数据库已修改
SQL> alter tablespace t1 rename to t11; # t1表空间名改为 t11
Tablespace altered. # 表空间已修改
SQL> drop tablespace t11 including contents and datafiles; # 删除表空间包括内容和数据文件
drop tablespace t11 including contents and datafiles
*
ERROR at line 1: # 失败
ORA-12919: Can not drop the default permanent tablespace # 不能删除默认的永久表空间
SQL> alter database default tablespace users; # 将当前用户默认表空间改为users
Database altered. # 数据库已修改
SQL> drop tablespace t11 including contents and datafiles; # 删除表空间包括内容和数据文件
Tablespace dropped. # 表空间删除
SQL>