Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29955561
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 数据库开发技术

2010-10-02 12:30:17

SQLServer中角色与用户

时间:2010-1-2

SQL Server 2000 中,安全管理可分为数据库安全管理和服务器安全管理,数据库的管理主要涉及到用户对数据库的权限,服务器的管理主要是用户对整个服务器的操作权限。在这些权限管理中,使用基于角色的方式使管理配置变得非常简单。当我们新建一个数据库后,会在数据库中看到两个容器:用户和角色,数据库用户通过验证后对于数据库有操作权限,数据库角色是预置数据库权限的对象,有些类 似于安全组,但是比组更加灵活,例如数据库角色 db_backupoperator 拥有对于数据库的备份操作权限,这样我们只需把这个角色赋给指定用户,用户即有了备份数据库权限。

                                                 用户截图

 

       角色截图

 

 

1.      修改某个用户的角色

具体配置方法很简单:

在企业管理器中,双击用户容器,通过右键菜单打开指定用户的属性,可以看到数据库角色列表,选中想要赋予用户的角色,点击确定。

也可以打开角色容器,通过双击,打开想赋予的角色的属性,点击添加,把指定用户加入这个角色,点击确定。

PS:一个用户是能够归属于多个角色的。

 

缺省的数据库角色有:

db_accessadmin

db_backupoperator

db_datareader

db_datawriter

db_ddladmin

db_denydatareader

db_denydatawriter

db_owner

db_securityadmin 

可以参考上面的截图。就是缺省的用户角色!

 

当然我们也可以创建一些用户角色去管理这个数据库的东西。

在数据库中角色容器,单击右健,选择新建数据库角色,指定角色名称和角色包括的用户,点击确定.再次打开这个角色时,单击权限给角色配置数据库权限,包括 对数据表,视图,存储过程的 select , insert , update , delete , exec , dri 权限.我们可以把创建的数据库角色加入到缺省数据库角色中,来给新数据库角色赋权,但是缺省数据库角色的权限不能修改.

 

说明:我们能够对某个角色进行权限的配置。包括某个表视图存储过程的单独修改。

 

2、理解用户、角色和权限这几个概念

要对这几个概念讲得很明白,需要很大的篇幅,本文只作简要介绍。

要想访问SQL Server必须是它的一个用户,如果要访问某个数据库,必须赋予该用户访问此数据库的权限。角色就是一系列权限的集合。用户和角色的关系就像Windows系统中的用户和用户组的关系。

PSSQLSERVER里面没有组的概念而是用角色来替代了。可以给角色赋不同的权限。然后一个角色里面是有许多个不同的用户。

 

saSQL Server的默认超级用户,就像系统的administrator用户一样。实际做管理系统时并不需要用户有那么大的权限,一般只要能访问自己建的库就行了。可以新建个用户,只给此用户有限的权限,这样安全系数应该高些,从这个思路出发看看如何实现。

 

 

注意:这个思想其实与MYSQL的一样。把用户的权限尽量地减小。

 

1)、新建aaa用户

  如图17,新建登录后出现图18界面,输入用户名aaa,在输入个强壮的密码。

新手宝典:SQLServer的几个安全问题(多图)(6)

图17

新手宝典:SQLServer的几个安全问题(多图)(6)

图18

  2)、设置权限

  如图18,在“服务器角色”选项中什么也不选,如图19,在“数据库访问”选项中只选“xyz”库,也就是说只让aaa用户访问xyz库。“数据库角色中允许”只选默认的“public”。

新手宝典:SQLServer的几个安全问题(多图)(6)

图19

新手宝典:SQLServer的几个安全问题(多图)(6)

图20

  3)、测试

  设置好后,用aaa用户登陆“SQL 查询分析器”,如图21,执行exec xp_cmdshell 'net user user1 /add',出现了期待的结果,没有权限执行。

新手宝典:SQLServer的几个安全问题(多图)(6)

图21

 

 

结论:按照这个操作步骤。一个数据库把其角色明确好。然后再配置一个登录用户就行了!在程序里面就使用这个登录用户来实施就行了。

 

 

 

二、PHP来连接MSSQL的方法

2.1. 使用ODBC的方法

配置好数据源其它的就好办多了$conn=odbc_connect('radius','hkebao','hkebao'); OK了!

2.2. 使用mssql_connect 这种办法来连接

修改php.ini文件中
1 extension=php_mssql.dll
2 mssql.secure_connection = On

然后就可以使用了:

$myServer = "127.0.0.1"; //主机

$myUser = "hkebao"; //用户名

$myPass = "hkebao"; //密码

$myDB = "hnebony";  //MSSQL库名

 

$s = @mssql_connect($myServer, $myUser, $myPass)

or die("Couldn't connect to SQL Server on $myServer");

if($s)

       {

       echo "连接成功";

       }

mssql_select_db("hnebony");

 

 

注意:一开始的时候我是用localhost来连接的结果就不成功。得用IP来连接才行!

阅读(1063) | 评论(0) | 转发(0) |
0

上一篇:Rpm与yum包

下一篇:二十几岁男人的秘密

给主人留下些什么吧!~~