加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

关于SqlServer2005安全机制(一)

发布时间:2020-12-12 15:32:50 所属栏目:MsSql教程 来源:网络整理
导读:关于数据库安全机制,胡百敬、姚巧枚编著的《Sql Server2005数据库开发详解》,讲得浅显易懂,很值得看。。 以下是我看书和做实验得出的结论,如有错误的地方还望指正。 create login tempuser with password='123' 上面这一语句只是创建了与数据库的链接,

关于数据库安全机制,胡百敬、姚巧枚编著的《Sql Server2005数据库开发详解》,讲得浅显易懂,很值得看。。

以下是我看书和做实验得出的结论,如有错误的地方还望指正。

create login tempuser with password='123'

上面这一语句只是创建了与数据库的链接,具有Sql Server分配的默认的权限。

例如其默认的数据库是master,可以在相应权限下查询master的表。但tempuser只是一个登录名,

在master的用户表里面并没有与之对应的用户,这一点是显然的。

由于tempuser默认的数据库是master,显然它并没有访问其他用户创建的数据库的权限。

如果想访问其他数据库,则要修改该登陆用户的默认数据库。

alter login tempuser with default_database=adventureworks

create login tempuser with password='123',default_database=Adventureworks

(注意上面语句的执行都是在master为环境的,也就是用DBA的权限执行的)

但是这样带来了一个问题,也就是用登陆用户tempuser的时候会Server抛出异常

?也就是tempuser将不能再登陆Server服务器,因为它默认的数据库是adventureworks,

但数据库adventureworks里面却没有与之对应的用户,所以就不能登录了。

use Adventureworks
go
create user Atempuser for login tempuser

上面的语句执行之后,再次用登录名tempuser就可以成功登陆了。

只不过没有给Atempuser 用户相应的权限,故用tempuser登陆之后能做的事情非常有限。

如果更改登陆之后的权限,只需更改用户Atempuser 或登录账号tempuser相应的权限就OK了

例如用DBA权限在数据库Adventureworks创建了表Table1,如果用tempuser登陆的话,因为用户Atempuser没有查找的权限,所以执行select语句会抛出异常

消息 229,级别 14,状态 5,第 1 行
The SELECT permission was denied on the object 'Table1',database 'Adventureworks',schema 'dbo'.

?

如果分配给用户Atempuser? select权限就行了。(待会再写,同学要来玩......)。

一个数据库可以有很多用户,每个用户的权限不同。

每个登陆账号可以与数据库的某个用户映射,且只能是一个。如果连续执行以下语句会抛出异常。

use Adventureworks
go
create user buser for login? tempuser

create user auser for login? tempuser

?

出现错误消息。
The login already has an account under a different user name.

但是每个登陆账号在不同的数据库里面各有用户映射,以此来管理登陆的数据库

另外关于Sql Server2005里面模式的概念我觉得就是一个命名空间的作用,比如我们用C#/C++等编写类的时候如果没有添加命名空间的引用,则会到默认命名空间下面找。如果没有添加命名空间则需要用 命名空间.类 这样的二级结构来找相关的对象类型。

其实Server2005沿用了这种思想。在Server 2005里面每一个表,视图,存储过程等都看做一个对象,而模式的作用就是对这些对象分门别类。两个不同模式下的对象可以同名,这样访问的时候就必须加上模式名。如果用户没有加模式名,则系统会首先在该用户具有权限的模式下面找,如果没有找到就到默认模式(dbo)下面找。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读