0
工作,我有以下几点看法(所谓view3
)授予权限似乎无法在视图
我创建了一个角色,并授予它只是SELECT
和UPDATE
权利两列。
CREATE ROLE Testrole
GRANT SELECT (Doc_ID, [Total Attentions]) ON view3 TO Testrole
然后我分配的作用,已创建
ALTER ROLE Testrole ADD MEMBER test
但是用户(test
)检查时,如果一切正常的交易执行,所有的列显示,而不是需要的两个(上面的图像相同)。
这是脚本
CREATE LOGIN logtest
WITH PASSWORD = 'logtest'
CREATE USER test
FOR LOGIN logtest
CREATE ROLE Testrole
GRANT SELECT (Doc_ID, [Total Attentions]) ON view3 TO Testrole
ALTER ROLE Testrole ADD MEMBER test
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRANSACTION
EXECUTE AS USER = 'test'
SELECT * /*This should give an error*/
FROM view3
SELECT Doc_ID, [Total Attentions] /*This should work just fine*/
FROM view3
REVERT
ROLLBACK
我跑了它,它表明: 'PERMISSION_NAME:SELECT OBJECTNAME:VIEW3 的ColumnName:所有列 承授人:test' 这表明,不知何故,我授予'test' SELECT权限所有列?如果我没有明确地这样做,怎么可能呢?如何解决这个问题(我的意思是,将SELECT或UPDATE特权限制在所有列中)? – Jazz
通过将'REVOKE SELECT ON view3 FROM test'并再次执行,问题依然存在。 – Jazz
尝试执行'REVOKE SELECT ON view3 FROM test',验证由于没有权限,用户测试失败导致SELECT'失败,然后再次授予列权限。我希望只有具有授权列的SELECT才能成功。 –