如何建立一个用户,只能访问某个视图,表,过程? 我现在只能建立到read 的用户;但不能限制它访问所有的对象. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 譬如,我只让nosa 这个数据库用户拥有访问view_readtb 这个视图;只允许执行sp_procdure123这个过程.怎么设置? 设置权限呀,把那些数据库中view_readtbsp_procdure123这些对象的权限给他,其他的不给了 这个是 sqlserver 我在安全性->登陆里没找到...具体的设置方法 oracle 的话 我晓得; --参考: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 权限建立参考上面,分配如下GRANT SELECT ON view_readtb TO nosa GRANT EXECUTE ON sp_procdure123 TO nosa 我都是直接在管理器上直接建立用户的;建立用户时;如果没有赋值它所能访问的库的话;你这些GRANT 根本就执行不了;说找不到此用户或组;要是赋值了某个库的话,你不用GRANT 它也能访问;当然是我给它DB_DATAREADER角色了; sql server 数据类型的问题 sqlserver2005 请教如何恢复数据库连接数限制 数据表的设计是否合理 数据库恢复的问题。 帮忙看一下很简单的? 再来一题(计算最大值) 如何实现查询结果与表的左外连接? 帮我看看这个存储过程有什么问题? XP 连接SQLServer2000 在ms sql中如何生成报表数据?(dephi或bcb) 请问 sql server 里怎么判断像‘20091313’这样的时间格式是否正确 sql排序
只允许执行sp_procdure123这个过程.
怎么设置?
view_readtb
sp_procdure123
这些对象的权限给他,其他的不给了
oracle 的话 我晓得;
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
我都是直接在管理器上直接建立用户的;
建立用户时;如果没有赋值它所能访问的库的话;
你这些GRANT 根本就执行不了;说找不到此用户或组;
要是赋值了某个库的话,你不用GRANT 它也能访问;当然是我给它DB_DATAREADER角色了;