在数据库应用中,我们有些时候需要给某些用户单一的视图、存储过程或者表等相关对象的访问权限,以便某些应用的调用,同时也不会让其访问到我们核心应用库的数据,同时防止其做一些破坏性的操作。
以下边是在sql server 2005上给某用户单一视图访问的权限的过程。(某接口开发的记录)
/*
创建用户
*/
USE [master]
GO
CREATE LOGIN [tb_test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [tb_test]
GO
CREATE USER [tb_fy1] FOR LOGIN [tb_test]
GO
/*
创建需要的视图
*/
CREATE VIEW vw_test
AS
select ******
--授予权限
grant select on talbeName to tb_test --授予表talbeName的访问权限
grant select on vw_test to tb_test --授予视图vw_test访问权限
grant execute on procName to tb_test --授予存储过程procName执行权限
以上的操作执行后,我们即可以将用户tb_test交付给客户使用,我们需要让客户访问那些权限即采取上述的授权方式即可。当然,这样也可以更加清晰的权限分配。
当然,如果此类用户较多,可以考虑使用role来管理权限。
转载于:https://blog.51cto.com/carefree/1350977