访问 http://www.qqread.com/network/server/f441178181.html
实际应用中,我们经常会在数据库中建立自己需要的登陆用户,但是您建立登陆用户的方法是否正确?是否对登陆用户的权限进行过详细的划分?划分前是否已经整理好该用户的权限呢?如果划分不当,您知道它带来的后果吗?
请参考下面方法:
目的:
实际应用中,我们经常会在数据库中建立自己需要的登陆用户,但是您建立
登陆用户的方法是否正确?是否对登陆用户的权限进行过详细的划分?划分前
是否已经整理好该用户的权限呢?如果划分不当,您知道它带来的后果吗?
一、建立用户前先分析该用户的用途
在应用中我们经常会建立很多SQL Server的登陆用户,每个用户都有不同的
用途,完成的功能也不相同,如果您是一个数据库的管理员,面对这么多数据库
的登陆用户是否对这些登陆用户有很详细的了解,这里所说的了解是指具体的用
途,比如:user_a只能读某个数据库的某个表;user_b可以读、写某个数据库的
某些表等。有些管理员为了偷懒省事,直接复给它个db_owner更有甚者给它
System Administrators权限,这样暂时虽然给您的操作带来了方便,但同时也给
hacker们带来了方便。:)。因此这里有一个建议:“在建立登陆用户时,把它
的详细用途用笔记下,然后整理,同时也为下次核查数据库的安全做了参考”
例如:
二、正确的建立SQL Server用户
1、打开SQL Server Enterprise Manager,在登陆中建立一个新的用户,在
General栏中,输入名字->选择登陆方式->输入密码->选择默认的数据库,如图(一):
图(一)
选择第二栏Server Roles,里面可以选择该用户的权限,需要注意的是,如
果您选择了System Administrators,那么后面的Database Access栏就不用选
择了,因为此时你的权限最大可以做任何事,这里我们不选,如图(二):
图(二)
选择第三栏Database Access选择要访问的数据库,为该数据库选择相应的
权限public,如果您还选择了db_owner,那么该用户就有了:添加、删除、修改
该数据库的权限,这里我们不选,目的是为了对数据库中的表单独设置具体的权
限。如图(三):
图(三)
点击确定。
2、打开刚才选择的数据库展开它->选择Users,在右边出现了我们刚才建立
的用户->属性(右键),如图(四):
图(四)
在Database role membership:中,你可以继续为它划分权限,我们选择
public->Permissions… (右上角),然后出现针对具体表的权限设置,如图(五):
图(五)
选择详细的规划后,点确定,到此有关权限的设置已经完成。
三、权限划分不当的危害
在新安装的SQL Server后,如果"sa"帐户,密码就为空,而且这个密码是SQL
Server安全模块成员,享有最高的管理控制权,那么我们就可以用查询器或者
OSQL登陆到对方的计算机上,前提是对方的数据库中
xp_cmdshell stored procedure“扩展存储过程” 存在,默认是有的,(能让
你这么容易的登陆上估计也不可能删除的)然后运行下面的命令:
Xp_cmdshell "net user hacker 123456 /ADD"
(增加一个名字为hacker密码为123456的用户)
然后在:
Xp_cmdshell "net localgroup Administrators hacker /ADD"
(给刚才增加的hacker用户,添加到Administrators组中)
这样攻击者就成功的在SQL SERVER上增加了一个windows用户,而且有最高权限,
然后做什么呢?这个问题自己想吧,有了最高权限,想做什么就做什么吧。
更多内容请看网络管理实用手册、Windows权限设置、SQL Server 数据处理专题专题,或进入讨论组讨论。
实际应用中,我们经常会在数据库中建立自己需要的登陆用户,但是您建立登陆用户的方法是否正确?是否对登陆用户的权限进行过详细的划分?划分前是否已经整理好该用户的权限呢?如果划分不当,您知道它带来的后果吗?
请参考下面方法:
目的:
实际应用中,我们经常会在数据库中建立自己需要的登陆用户,但是您建立
登陆用户的方法是否正确?是否对登陆用户的权限进行过详细的划分?划分前
是否已经整理好该用户的权限呢?如果划分不当,您知道它带来的后果吗?
一、建立用户前先分析该用户的用途
在应用中我们经常会建立很多SQL Server的登陆用户,每个用户都有不同的
用途,完成的功能也不相同,如果您是一个数据库的管理员,面对这么多数据库
的登陆用户是否对这些登陆用户有很详细的了解,这里所说的了解是指具体的用
途,比如:user_a只能读某个数据库的某个表;user_b可以读、写某个数据库的
某些表等。有些管理员为了偷懒省事,直接复给它个db_owner更有甚者给它
System Administrators权限,这样暂时虽然给您的操作带来了方便,但同时也给
hacker们带来了方便。:)。因此这里有一个建议:“在建立登陆用户时,把它
的详细用途用笔记下,然后整理,同时也为下次核查数据库的安全做了参考”
例如:
二、正确的建立SQL Server用户
1、打开SQL Server Enterprise Manager,在登陆中建立一个新的用户,在
General栏中,输入名字->选择登陆方式->输入密码->选择默认的数据库,如图(一):
图(一)
选择第二栏Server Roles,里面可以选择该用户的权限,需要注意的是,如
果您选择了System Administrators,那么后面的Database Access栏就不用选
择了,因为此时你的权限最大可以做任何事,这里我们不选,如图(二):
图(二)
选择第三栏Database Access选择要访问的数据库,为该数据库选择相应的
权限public,如果您还选择了db_owner,那么该用户就有了:添加、删除、修改
该数据库的权限,这里我们不选,目的是为了对数据库中的表单独设置具体的权
限。如图(三):
图(三)
点击确定。
2、打开刚才选择的数据库展开它->选择Users,在右边出现了我们刚才建立
的用户->属性(右键),如图(四):
图(四)
在Database role membership:中,你可以继续为它划分权限,我们选择
public->Permissions… (右上角),然后出现针对具体表的权限设置,如图(五):
图(五)
选择详细的规划后,点确定,到此有关权限的设置已经完成。
三、权限划分不当的危害
在新安装的SQL Server后,如果"sa"帐户,密码就为空,而且这个密码是SQL
Server安全模块成员,享有最高的管理控制权,那么我们就可以用查询器或者
OSQL登陆到对方的计算机上,前提是对方的数据库中
xp_cmdshell stored procedure“扩展存储过程” 存在,默认是有的,(能让
你这么容易的登陆上估计也不可能删除的)然后运行下面的命令:
Xp_cmdshell "net user hacker 123456 /ADD"
(增加一个名字为hacker密码为123456的用户)
然后在:
Xp_cmdshell "net localgroup Administrators hacker /ADD"
(给刚才增加的hacker用户,添加到Administrators组中)
这样攻击者就成功的在SQL SERVER上增加了一个windows用户,而且有最高权限,
然后做什么呢?这个问题自己想吧,有了最高权限,想做什么就做什么吧。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 网络管理实用手册 (22492篇文章)
- Windows权限设置 (10247篇文章)
- SQL Server 数据处理专题 (1856篇文章)
- SQL Server 索引和查询专题 (3324篇文章)
- SQL Server (1813篇文章)
- SQL Server (1815篇文章)
- Exchange 2003 SP2对公用文件夹的改变 (8次浏览)
- Exchange 2007中如何授予邮箱的代理发送权限 (0次浏览)
- 分析刀片与机架式服务器的选择问题 (0次浏览)
- 如何增强Exchange服务器的安全性 (0次浏览)
- 微软Windows试水高端企业级服务器市场 (0次浏览)
- XML入门教程:服务器上的XML (0次浏览)
- Ubuntu用Apache2管理Subversion控制系统 (0次浏览)
- 搭建Exchange2007企业邮箱系统方案 (0次浏览)
- 服务器虚拟化的价值以及存在的问题 (0次浏览)
- SENDMAIL邮件服务器的安装与设置 (0次浏览)



