SQL*Plus的基本操作

SQL*Plus的启动与关闭

仅启动SQL*Plus不登录到数据库: sqlplus /nolog
以默认管理员登陆: sqlplus / as sysdba
以数据库账户登录:

$ sqlplus
$ sqlplus username
$ sqlplus username@sid
$ sqlplus username@//host/sid
$ sqlplus username@//host:port/sid
**$ sqlplus username/password**
$ sqlplus username/password@sid
$ sqlplus username/password@//host/sid
$ sqlplus username/password@//host:port/sid
$ sqlplus username as sysdba
$ sqlplus username@sid as sysdba
$ sqlplus username@//host/sid as sysdba
$ sqlplus username@//host:port/sid as sysdba
$ sqlplus username/password as sysdba
$ sqlplus username/password@sid as sysdba
$ sqlplus username/password@//host/sid as sysdba
$ sqlplus username/password@//host:port/sid as sysdba

登录数据库并执行 SQL*Plus 脚本文件
$ sqlplus username/password@sid @/home/oracle/createdb
$ sqlplus username/password@sid @/home/oracle/createdb.sql
$ sqlplus username/password@sid @/home/oracle/createdb.sql 10 10 30 40

创建表空间和用户

sqlplus / as sysdba以系统管理员身份登陆,出现SQL>,接下来查看当前数据库文件都存放在哪里:select name from v$datafile;
在这里插入图片描述
现在开始创建数据库表空间:
格式为 create tablespace 表空间名 datafile ‘对应的文件名’ size 大小;
eg:

create  tablespace  yang   datafile   '/oracle/oradata/orcl/yang.dbf'    size   3000m;

接下来创建用户: create user 用户名 identified by 密码 default tablespace 用户默认使用哪一个表空间;
eg.
create user yanglei identified by yang123 default tablespace yang;
最后,修改用户权限,参见 授予系统权限

更改用户

修改密码:
ALTER USER USERMAN IDENTIFIED BY NewPassword;
设置用户USERMAN的密码立即过期,它在下一次登录时必须修改密码:
ALTER USER USERMAN PASSWORD EXPIRE;
锁定用户USERMAN,使其无法登录到数据库:
ALTER USER USERMAN ACCOUNT LOCK;
解除对用户USERMAN的锁定:
ALTER USER USERMAN ACCOUNT UNLOCK;

删除用户

DROP USER语句也可以删除指定的用户。
DROP USER 用户名 [CASCADE];

查询用户

1.查看所有用户:

select * from dba_users;   

select * from all_users;   

select * from user_users;

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):

select * from dba_sys_privs;   
select * from user_sys_privs; (查看当前用户所拥有的权限)

3.查看角色(只能查看登陆用户拥有的角色)所包含的权限

sql>select * from role_sys_privs;

4.查看用户对象权限:

select * from dba_tab_privs;   

select * from all_tab_privs;   

select * from user_tab_privs;

5.查看所有角色:

select * from dba_roles;

6.查看用户或角色所拥有的角色:

select * from dba_role_privs;  
select * from user_role_privs;

7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

select * from V$PWFILE_USERS

8.SqlPlus中查看一个用户所拥有权限

SQL>select * from dba_sys_privs where grantee='username'; 其中的username即用户名要大写才行。
比如: SQL>select * from dba_sys_privs where grantee='TOM';

9、Oracle删除指定用户所有表的方法

select 'Drop table '||table_name||';' from all_tables where owner='要删除的用户名(注意要大写)';

10、删除用户

drop user user_name cascade; 如:drop user SMCHANNEL CASCADE

11、获取当前用户下所有的表:

select table_name from user_tables;

12、删除某用户下所有的表数据:

select 'truncate table  ' || table_name from user_tables;

授予系统权限

grant create session to lisi;       //授予lisi用户创建session的权限,即登陆权限 (必须授予,登录使用)
grant create table to lisi;         //授予lisi用户创建表的权限
grant unlimited tablespace to lisi; //授予lisi用户使用表空间的权限(想创建表,必须具有使用表空间权限)
grant create session public; //把创建session的权限,授予所有的用户;
——撤销权限
revoke create session from lisi;       //撤销lisi用户创建session的权限,即登陆权限
revoke unlimited tablespace from lisi; //撤销lisi用户使用表空间的权限
 revoke create table from lisi;         //撤销lisi用户创建表的权限

授予对象权限

oracle中对象是彼此分开的,默认情况下,不能相互访问数据,但是可以通过授予对象权限的方式,让不同用户之间的相互访问;
我们使用lisi用户创建的表lisitable ,然后在没有给wangwu授权的情况下,让wangwu查询lisitable;(没有权限)
在这里插入图片描述
我们让lisi用户把权限授予wangwu用户,同时也可以撤销授予其他用户的权限,授予的权限还可以具体到表的某一列上;
在这里插入图片描述
这时我们使用wangwu用户来访问lisi用户的lisitable;
在这里插入图片描述
——权限传递,一般来说权限之间是不可以传递的,但是加上admin option之后就能传递:
在这里插入图片描述
lisi也具备授予wangwu,alter any table的权限;
在这里插入图片描述

创建角色

Create role 角色名[not identified | identified {by 口令|externally|globally}];

给角色授权
Grant {All|对象权限1 [,对象权限2…] }[列1[,列2]…] On{[模式名.]对象名|directory 目录名}to角色 [with grant option];

删除角色

drop role 角色;

修改表:

    (1)修改表的名称
            alter table 表名 rename to 新的名字;
            demo:
                alter table ta1 rename to ta0;
    (2)添加一个新字段
            alter table 表名 add 新字段 字段的类型;
            demo:
                alter table ta0 add unames varchar(20);
     (3)修改字段:
            alter table 表名  change 旧得字段  新的字段 字段的数据类型;
               alter table ta0 change unames uname varchar(20);
    (4)修改字段的类型:
            alter table 表名  modify  字段  字段的新类型
             demo:                
            alter table ta0 modify uname int;

================================================================
参考来源:csdn博客,博客园。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值