现在的位置: 首页 > 综合 > 正文

数据库安全性(一)

2013年07月03日 ⁄ 综合 ⁄ 共 1536字 ⁄ 字号 评论关闭

本来说一周更新一篇博客,最近由于种种原因导致该计划搁浅了很久,下不为例~~~

昨天笔记本显卡坏了,没办法,只能用工作室的电脑,也借机好好补补我的数据结构,操作系统还有数据库==#

 

----------------------------------------分割线--------------------------------------------------

首先是关于Schema与User的问题。

一般来说,一个用户对应一个schema,该用户的schema等同于user名,并作为该用户缺省的schema。oracle数据库下是不能够创建schema的,要想创建一个schema只能通过创建一个user来实现。这时user的名称即为schema的名称,即user用户缺省的schema名为user名,oracle数据库中user和schema是一一对应的。。。看到这里大家是不是迷糊啦~~~别着急,听我细细道来。。。 

 

userOracle中的用户,和所有系统的中用户概念类似,用户所持有的是系统的权限及资源;而schema所涵盖的是各种对象,它包含了表、视图、函数、包等等对象的“所在地”,并不包括对他们的权限控制。好比有有一台笔记本,你是这台笔记本的user,而你的笔记本是schema,给你的笔记本起个名字,这个名字(schema)和你的名字(user)一样,这时候想操作的话不能操作user,只能操作schema==#比如你操作scott用户下的emp表,select * from emp,实际上这句话系统会加上一个缺省的schema名:select * from scott.emp。

 

然后是创建user的问题。

DBA的主要职责之一有负责为用户授予数据库访问权限,因为用户是不能够随便对数据库进行操作的,这里就涉及到创建用户(user)的问题。我们可以在sys或者system用户下在oracle中创建新的用户。

举个例子吧:

以管理员身份登录创建一个user test,密码为test

 

当连接到test用户时系统告诉我们缺少create session的权限,也就是说我们在初始创建一个用户后连创建会话的基本权利都没有,重新以sysdba的身份登录给test用户授权。

 

 

授予创建会话权利之后重新连接到test,创建表a,发现权限不足,重新以dba的身份登录,授予创建table的权限。

 

授予创建table的权利似乎并不能解决我们的问题,这里告诉我们对表空间users无操作权限,大家都知道users是oracle默认的表空间之一,一般用户创建的表默认都存储在users和system表空间中,当然你也可以自己创建表空间~~~以sysdba的身份登录,分配给test用户50M空间在users表空间上。这里需要强调一点,其实创建用户完整的语法应该是这样的:

这里usertablespace指的是用户自定义的tablespace名,tempuser是用户自定义的临时表空间名,当然你也可以存储到系统定义的表空间上,如这里的users。

分配区域后重新登录test用户,创建表a,b并插入数据,发现这里插入成功。由此可见,自己创建的表当然有对自己表的增删改查的权利了。

 

查询该用户下的所有的表。

 

如果用户不听话我想冻结他的user怎么办呢?别着急,DBA来了!

好了,这时候test用户被冻结了,他的钱全在里面啦!

抱歉!评论已关闭.