目前我的系統是權限庫與數據庫分開,每個用戶的登錄信息必須要先經過權限庫的驗証然後才能訪問數據庫,對於普通用戶來說,訪問的限制可以在程序中完成,即通過設定程序的權限來做,但對於電腦開發人員來說,如何去限制他們的仿問權限?
我想問的問題概括起來說就是如何去管理開發人員的訪問權限?以提高安全性,但又不影響開發和維護工作。
當然也可談談在數據庫安全管理方面的經驗。
Q : 數據庫安全管理范例!
主要解答者: zjcxc 提交人: zjcxc
感谢: zjcxc
审核者: pbsql 社区对应贴子: 查看
A :
首先,做好用户安全:
--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)
1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server和windows"--确定
2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码
3.删除用户:
BUILTIN/Administrators
<机器名>/Administrator --这个用户不一定有
这样可以防止用windows身份登陆SQL
4.设置进入企业管理器需要输入密码
在企业管理器中
--右键你的服务器实例(就是那个有绿色图标的)
--编辑SQL Server注册属性
--选择"使用 SQL Server 身份验证"
--并勾选"总是提示输入登录名和密码"
--确定
--经过上面的设置,你的SQL Server基本上算是安全了.
------------------------------------------------------------------------
其次,改默认端口,隐藏服务器,减少被攻击的可能性
SQL Server服务器
--开始
--程序
--Microsoft SQL Server
--服务器网络实用工具
--启用的协议中"TCP/IP"
--属性
--默认端口,输入一个自已定义的端口,比如2433
--勾选隐藏服务器
----------------------------------------------------------------------------
--管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录
---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加
--添加用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名','数据库名'
--分本权限
grant insert,select,update,delete on table1 to public
-------------------------------------------------------------------
至于具体的安全设置和理论知道,参考SQL联机帮助
同上,开发人员也给他们一个账号,分配权限
可以一个测试库
放一些简单数据
测试好了
再连正式的库
管理好操作系统和数据库中的用户的权限,有一个管理不到,都控制不了
学习
有時需要在正式的數據庫上進行維護,所以測試的環境不能解決問題。
提高安全性主要是要防止以下幾方面的內容:
1、如何保証開發人員不導出數據庫結構?
2、如何保証開發人員不批量導出數據庫內容?
3、如何保証開發人員不故意刪除數據?
4、對於不同的開人人員如何設定不同的訪問權限?比如甲對A表有編輯權限,對B表則沒有,乙正好相反,那麼他們的訪問ID的權限該如何設置?
好像都比較難.
1、2、3、
既然是“开发人员”,就有这些权限
4、
用sqlserver中的用户权限设置就行了
我想問的問題概括起來說就是如何去管理開發人員的訪問權限?以提高安全性,但又不影響開發和維護工作。
當然也可談談在數據庫安全管理方面的經驗。
Q : 數據庫安全管理范例!
主要解答者: zjcxc 提交人: zjcxc
感谢: zjcxc
审核者: pbsql 社区对应贴子: 查看
A :
首先,做好用户安全:
--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)
1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server和windows"--确定
2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码
3.删除用户:
BUILTIN/Administrators
<机器名>/Administrator --这个用户不一定有
这样可以防止用windows身份登陆SQL
4.设置进入企业管理器需要输入密码
在企业管理器中
--右键你的服务器实例(就是那个有绿色图标的)
--编辑SQL Server注册属性
--选择"使用 SQL Server 身份验证"
--并勾选"总是提示输入登录名和密码"
--确定
--经过上面的设置,你的SQL Server基本上算是安全了.
------------------------------------------------------------------------
其次,改默认端口,隐藏服务器,减少被攻击的可能性
SQL Server服务器
--开始
--程序
--Microsoft SQL Server
--服务器网络实用工具
--启用的协议中"TCP/IP"
--属性
--默认端口,输入一个自已定义的端口,比如2433
--勾选隐藏服务器
----------------------------------------------------------------------------
--管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录
---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加
--添加用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名','数据库名'
--分本权限
grant insert,select,update,delete on table1 to public
-------------------------------------------------------------------
至于具体的安全设置和理论知道,参考SQL联机帮助
同上,开发人员也给他们一个账号,分配权限
可以一个测试库
放一些简单数据
测试好了
再连正式的库
管理好操作系统和数据库中的用户的权限,有一个管理不到,都控制不了
学习
有時需要在正式的數據庫上進行維護,所以測試的環境不能解決問題。
提高安全性主要是要防止以下幾方面的內容:
1、如何保証開發人員不導出數據庫結構?
2、如何保証開發人員不批量導出數據庫內容?
3、如何保証開發人員不故意刪除數據?
4、對於不同的開人人員如何設定不同的訪問權限?比如甲對A表有編輯權限,對B表則沒有,乙正好相反,那麼他們的訪問ID的權限該如何設置?
好像都比較難.
1、2、3、
既然是“开发人员”,就有这些权限
4、
用sqlserver中的用户权限设置就行了