ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Server安全相关的几个概念

SQL Server安全相关的几个概念

原创 Linux操作系统 作者:六人行-SQLServer 时间:2010-01-05 11:24:31 0 删除 编辑

小李作为一家公司的DBA,数据库安全方面也需要特别关注。

登录名和用户名的区别?什么是角色?用户和架构的区别?

  拿我们平常经常打交道的sa来说,它其实是个登录名。那为什么我们用sa登录之后可以操作各种数据库呢?那是因为MS SQL默认把sa映射为数据库的dbo用户,每创建一个新的数据库,MS SQL会默认创建一个dbo用户,这个用户的角色是db_owner,顾名思义,它可以在这个数据库里面为所欲为。忘了说了,sa登录名在服务器那个级别也属于一个服务器级别的角色:sysadmin,这也是一个可以在服务器上为所欲为的角色。

  架构既然是命名空间,那为什么我们访问一个表的时候,比如写类似于这种语句:SELECT * FROM Table1不需要制定架构名称呢(数据库中对象的全名称写法应该是:服务器名.数据库名.架构名.对象名)?那是因为MS SQL内部解析的机制是这样的(你不写明架构名的话):第一步先在sys架构中找这个表,找不到就在默认架构中找,再找不到就跑到dbo架构中找。创建一个用户的时候,MS SQL都会让你选择一个默认架构,如果你不选的话,那就是dbo。dbo架构是怎么来的?创建出来的---还记得建立数据库的时候会创建一个dbo的用户么,就是那个时候自动给你添加了一个同名dbo架构。

  另外,在创建新的用户时,好像无法指定登录名为sa,必须选择其他的登录名。其实原因是sa这个登录名已经被默认的dbo用过了,你不能在同一个数据库里用一个登录名建立两个用户。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22903848/viewspace-624303/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-11-20

  • 博文量
    29
  • 访问量
    30388