只能访问某个视图的用户的权限授予

来源:互联网 发布:订单显示淘宝 编辑:程序博客网 时间:2024/05/22 03:06
-------------- 测试表及增加的视图 Begin ------------------这里的测试库为 tempdb--弄清楚之后,修改相关代码,再上正式生产环境操作USE tempdbGOIF OBJECT_ID('dbo.ICStockBill') IS NOT NULLDROP TABLE dbo.ICStockBillGOCREATE TABLE dbo.ICStockBill(id INT IDENTITY(1,1) PRIMARY KEY,[Type] INT--假设1为出库单,2为其它)GOSET NOCOUNT ONINSERT INTO dbo.ICStockBill([Type]) VALUES(1)INSERT INTO dbo.ICStockBill([Type]) VALUES(2)GOIF OBJECT_ID('dbo.view_ICStockBill_Type2') IS NOT NULLDROP VIEW dbo.view_ICStockBill_Type2GOCREATE VIEW dbo.view_ICStockBill_Type2ASSELECT * FROM dbo.ICStockBill WHERE [type]=2GO-------------- 测试表及增加的视图 End ------------------1. 创建登录名USE [master]GOIF EXISTS(SELECT * FROM sys.syslogins AS s WHERE NAME='testUser')BEGINDROP LOGIN [testUser]ENDGOCREATE LOGIN testUser WITH PASSWORD=N'testUser', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFFGO--2. 进入需要授权的库,创建用户名并授权USE tempdbGOIF EXISTS(SELECT 1 FROM sys.database_principals WHERE NAME='testUser' AND type_desc='SQL_USER')DROP USER testUserGOCREATE USER testUser FOR LOGIN testUserGOGRANT SELECT ON dbo.view_ICStockBill_Type2 TO testUser --------------------- 用 testUser 用户登录之后 -----------------------USE [tempdb]GOSELECT [id]      ,[Type]FROM ICStockBill/*消息 229,级别 14,状态 5,第 4 行拒绝了对对象 'ICStockBill' (数据库 'tempdb',架构 'dbo')的 SELECT 权限。*/SELECT [id] ,[Type]  FROM [dbo].[view_ICStockBill_Type2]/*idType22*/

阅读全文
0 0
原创粉丝点击