日期:2014-05-18  浏览次数:20543 次

SQL2005中如何设定帐户权限?
1、本人对SQL2000比较熟,现在安装了一个SQL2005,发现SQL2005的权限管理和SQL2000有很大的不同,希望有朋友能教一下,如果详细说明感激不尽(抄来,复制来都可以,只要我能看懂,呵呵)。
2、我已有一数据库,数据库中有二千多个编写成的存储过程,想新建一个帐户,让它对存储过程有执行权,但对这个数据库中的所有表无读写权,如何设定?希望能尽可能具体点。


------解决方案--------------------
点击数据库展开,选择安全性-用户-属性

里面的设置和Sql2000是一样的,LZ怎么说不同呢?如果要看帮助直接按F1然后搜索权限


对存储过程有执行权,但对这个数据库中的所有表无读写权,如何设定?

这个问题LZ可以给这个用户 owner的权限,这样就能执行所以的东西,
然后否决读写权 db_denydatawriter db_denydatareader

--
USE [数据库]
GO
EXEC sp_addrolemember N 'db_owner ', N '用户名 '
GO

EXEC sp_addrolemember N 'db_denydatawriter ', N '用户名 '
GO

EXEC sp_addrolemember N 'db_denydatareader ', N '用户名 '
GO



------解决方案--------------------
SQL Server 2005的安全管理确实改进了不少,但就你所要求的而言,基本上和SQL 2000差不多。

--> 打开SQL Server 2005 的Management Studio
--> 在对象资源管理器中展开实例的第一级树节点,安全性,登录名
--> 右键“新建登录名”,在“常规”页面,输入登录名,设置为“SQL Server身份验证”,设置密码
--> 选中“用户映射”,选中数据库,指定登录的角色,确定
--> 然后展开数据库节点,选中你的数据库,展开节点,安全性,用户
--> 双击新建的用户或右键属性,打开数据库用户窗口,选择“安全对象”页面
--> 添加,选择“特定类型的所有对象”,确定,选择存储过程,逐个设置存储过程的授予“execute”权限即可
------解决方案--------------------
写个游标从sysobjects中取数,xtype为‘U’
exec( 'DENY SELECT '+ @cursor + ' TO Accounting ')
游标从sysobjects中取xtype为‘P’
exec( 'GRANT EXECUTE ON '@proccursor + ' TO Accounting ')