Oracle用户和权限
连接终端
sqlplus 账户名/密码
sqlplus 账户名
(再输密码)
已经进入sqlplus终端
conn 账户名/密码
conn 账户名(再输密码)
设置终端数据行和数据页的属性值
set linesize 500
每行最大字符(如果小了显示数据会折行)
set pagesize 5000
一次查询可以输出的内容(如果小了显示数据会折行)
查看当前用户身份
select user from dual
show user
创建用户
Oracle的身份验证分为两种:
-
当前登录的操作系统用户
-
数据内置账户
sys(相当于数据库的创建者/群主——只有一个)
如果以sqlplus sys as sysdba(密码可以随意,但是不对不能改密码),会被自动映射到操作系统身份(这个身份就是数据库的内置账户sys)
如果以sqlplus / as sysdba(不需要密码,但是也改不了密码),采用数据库内置的sys身份
可以启动、停止、配置服务器
system(相当于数据库的管理员/由群主创建授权——可以有多个)
一般用于数据和用户的维护
角色和权限
权限:一个操作的最小单元
create session
create table
create user
create procedure
角色:一组权限的集合(便于授权和管理)
dba
connect
resource
由sys/system可以查看数据库中已有的角色,以及角色中已经包含了哪些权限
select grantee, privilege from dba_sys_privs where grantee = ‘CONNECT’;
select grantee, privilege from dba_sys_privs where grantee = ‘RESOURCE’;
授权
-
由sys/system创建用户
create user itany identified by itany;
-
由sys/system可以查看当前数据库中的所有用户账号
select username, account_status from dba_users
-
由sys/system授予用户可以登录数据库服务器的权限
grant create session to itany
或者
由sys/system授予用户可以登录数据库服务器的角色
grant connect to itany
-
由sys/system授予用户访问数据库资源的角色
grant resource to itany
管理
系统级权限/角色
with admin option
系统级权限或者角色的传递
当sys/system在授予用户权限时,附加with admin option
,就意味着该用户还可以将自己的这个权限/角色再传递授权给别人。
revoke
权限/角色的撤销
revoke create session from itany
注意
不能撤销一个角色中的某几个权限(只有撤销该整个角色)
account lock/unlock
用户账户的锁定和解锁(一定要由sys/system执行)
alter user scott account lock;
alter user scott account unlock;
password expire
强制密码过期(一定要由sys/system执行)
alter user scott password expire;
对象级(一般是数据表、还有存储过程、视图等都属于数据对象)
一定要由数据对象的属主或者具有dba角色的用户才能授予
授予
grant select, update, delete, insert on scott.emp to itany;
grant all on scott.emp to itany;
撤销
revoke update, delete on scott.emp from itany;
注意:对于update还可以再细化到对哪些列允许更新
grant update(sal, comm) on scott.emp to itany;
with grant option
对象级权限的传递(将自己拥有的别人的数据对象再授权第三方访问,属主或者dba一定要授予你再授权的选项)
grant select on scott.emp to itany with grant option;
修改密码
-
修改自己的密码
password
passw
-
dba角色可以修改其他用户密码
password scott
passw scott
alter user scott identified by tiger;
自己家中如何设置一个合适的用户去使用或者开发?
-
以sys或者操作系统管理员身份登录服务器
sqlplus sys as sysdba
sqlplus / as sysdba
-
create user zhangsan identified by zhangsan;
-
grant dba to zhangsan;