系统运维
oracle权限管理
精英翻到结尾看备注
一:用户管理
1.1:用户与模式
在oracle中模式与用户是一一对应的,一个模式只能和被一个用户所拥有且名称和该用户一样;当用户访问自己模式中的对象时不需要指定模式名,如:scott用户访问自己的emp表时select * from emp不需要加模式名,经过授权的用户还可以访问其他模式的对象,访问时要在对象名的前面加上模式名。
1.2:创建新用户
要连接到oracle数据库,就需要创建一个用户帐户,每个用户都有一个默认表空间和一个临时表空间
拥有create user 权限的用户可以为数据库创建新的用户
col 字段名 for a10 //控制该字段长度
set timing on //开启时间计时下一步的动作
创建用户语法:
create user user_name
identified [by userpwd|externally|globally|]
[default tablespace default_tablespace ]
[temporary tablespace temp_tablespace]
[quota size |unlimited on tablespace_name]
[password expire]
[account lock|unlock]
//user_name要创建的数据库用户的名称,不能与现有的用户名重复
//identified 用户指定数据库用户的认证方式,password要创建用户的密码,即密码认证方式,externally表示要使用外部认证方式,globally表示要使用全局认证方式。
//default tablespace 指定创建用户的默认表空间,以后创建的对象存储在默认表空间内,默认表空间为users表空间。
//temporary tablespace 指定用户的临时表空间,当会话期间执行的操作超过了pga的可用空间,就会使用临时表空间,默认临时表空间为temp表空间。
//quota限制用户在某个表空间中使用的存储空间大小,默认在表空间上的配额为0,用户不能使用任何空间存储任何对象,不能为用户指定临时表空间的配额。
//password expire 指定用户在第一次登录时对密码进行修改
//account 指定用户的锁定状态,默认为unlock。
创建用户后,oracle数据库会自动创建一个相同名称的模式,该用户创建的对象都会保存该模式中。
创建用户user1设置密码123,其他默认
查询dateabase_properties视图,了解数据库当前的默认表空间和临时表空间
select property_name,property_value from database_properties
where property_name like \\\’default%\\\’
–查询用户user1的默认表空间和临时表空间,使用的是数据库当前默认表空间和临时表空间
1.3创建表空间
create tablespace test datafile \\\’test.dbf\\\’ size 10m;//创建表空间test
create temporary tablespace test_temp tempfile \\\’test_temp.dbf\\\’ size 10m;//创建临时表空间test_temp
-创建用户user2指定默认表空间test,临时表空间test_temp,配额无限制。
create user user2 identified by 123
default tablespace test temporary tablespace test_temp
quota unlimited on test;
用户user2可以使用表空间上任意大小的存储数据对象,使用视图dba_ts_quota可以查看用户被分配的表空间配额情况,user1没有被分配,所以查不到记录。
1.4:修改用户
语法:
— alter user user1 account lock;//将用户user1锁定
— alter user user1 password expire account unlock;//解锁user1并要求登录时改密码
— alter user user1 default tablespace test;//修改用户的默认表空间test
— alter user user1 quota 5m on test ;//修改用户user1的配额为5m
1.5:删除用户
drop user user1 [cascade] //删除user1用户
//当用户没有创建数据对象时,可以直接删除,如果用户创建了对象,要使用关键字cascade进行级联删除用户创建的数据对象,会先删除数据再删除用户。当用户正在登陆时是不能删除用户的,强制删除的话,需要先通过视图v$session查询该用户的会话id等信息,然后使用alter system kill session语句杀掉当前用户的会话,最后使用drop user删除用户。
1.6通过数据字典查询用户信息
1.//user_users:显示当前登录用户详细信息,包括用户名、用户id、帐号状态、默认表空间、临时表空间
2.//all_users:显示可以被当前登录的用户所访问的用户,只包括用户名、用户id、用户创建的时间
3.//dba_users:显示数据库中所有的用户信息,包括用户名、用户id、帐号状态、密码、锁定日期、失效日期、默认表空间临时表空间。
二:权限管理
此视图可以找到所需的权限。
以sysdba的身份登录,登录后用户是sys,sys用户除了拥有sysdba系统权限外,还拥有dba等角色的权限;和拥有sysdba系统权限有很大的区别,普通用户即使拥有了sysdba权限可能连数据库都登录不了。
2.1:权限有两种类型,系统权限和对象权限
系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限
对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作
2.2:管理员授予普通用户权限
语法:
grant sys_priv[,sys_priv]
to user[,user ]|role |public
[with admin option]
//sys_priv表示将要授予的系统权限,可以同时授予多个系统权限,他们之间用逗号隔开
//user表示要授予系统权限的用户,role要授予权限的角色,public表示public用户组,可以同时给多个用户属于系统权限,中间用逗号隔开。
//with admin option是否允许被授权的用户将获取的权限转授给其他用户,默认不能授予其他用户
2.3系统权限,授予系统权限
1.授予用户连接数据库权限并创建数据库对象: grant connect to tom;
2.允许用户连接数据库:grant create session to tom
2.建立表的系统权限: grant create table to tom ;
3.创建profile文件:create profile pro1 limit
4.修改用户的profile文件:alter user test1 profile pro1;
5.允许用户使用users表10m空间配额:alter user tom quota 10m on users;
6.tom用户任意使用表空间:grant unlimited tablespace to tom;
7.收回系统权限revoke:revoke create session from tom;
2.4对象权限,授予对象权限
1.对象权限:访问某个用户的特定数据对象(如表、视图等)的对象权限(select on scott.student)
常用的对象权限:
1.select权限:执行查询操作,能够执行的对象是表,视图和序列
2.insert权限:执行插入数据操作,能够执行的对象是表和视图
3.update权限:执行更新数据操作,能够执行的对象是表和视图
4.alter权限:执行修改对象的操作,能够执行的对象是表和序列
5.delete权限:执行删除数据的操作,能够执行的对象是表和视图
6.index权限:执行创建索引操作,能够执行的对象是表
7.references权限:执行外键引用的操作,能够执行的对象是表
8.execute权限:执行对象操作,能够执行的对象是函数,过程和包。
语法:
grant object_privilege [column_name…]
on obj_name
to user [, user|role, public…]
[w
阿里云服务器如何导出镜像CentOS 7升级Python到3.6.6后yum出错怎么办亳州市云服务器价格云服务器无镜像一邮箱设置反垃圾设置发信验证已经开启服务器连接不上已经有个多小时到2021年,32%%u7684IT预算将用于云计算港台体验型这是我的虚拟主机阿里云的域名我是解析的这个