仅启动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博客,博客园。