SQL Server 针对表的只读权限分配
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
--先创建测试库test_tmp
--根据现有的表创建两张表
SELECT TOP 100 * INTO test_tab1 FROM mistest_09428.dbo.squarer;
SELECT TOP 100 * INTO test_tab2 FROM mistest_09428.dbo.squarer;
--创建角色
EXEC sp_addrole 'test_role1' ;
--分配select的权限给角色test_role1
GRANT SELECT ON test_tab1 TO test_role1;
GRANT SELECT ON test_tab2 TO test_role1;
--add登陆dap570,密码dap570,默认库为test_tmp
EXEC sp_addlogin 'dap570','dap570','test_tmp';
--给dap570添加帐户test
EXEC sp_grantdbaccess 'dap570','test'
--将角色test_role1分配给text
EXEC sp_addrolemember 'test_role1','test';
--over
--换dap570来登录数据库test_tmp
--然后测试
/*
DELETE FROM test_tab1
INSERT INTO test_tab1(ingotno) VALUES('2222')
UPDATE test_tab1 SET ingotno = '3333'
*/
--根据现有的表创建两张表
SELECT TOP 100 * INTO test_tab1 FROM mistest_09428.dbo.squarer;
SELECT TOP 100 * INTO test_tab2 FROM mistest_09428.dbo.squarer;
--创建角色
EXEC sp_addrole 'test_role1' ;
--分配select的权限给角色test_role1
GRANT SELECT ON test_tab1 TO test_role1;
GRANT SELECT ON test_tab2 TO test_role1;
--add登陆dap570,密码dap570,默认库为test_tmp
EXEC sp_addlogin 'dap570','dap570','test_tmp';
--给dap570添加帐户test
EXEC sp_grantdbaccess 'dap570','test'
--将角色test_role1分配给text
EXEC sp_addrolemember 'test_role1','test';
--over
--换dap570来登录数据库test_tmp
--然后测试
/*
DELETE FROM test_tab1
INSERT INTO test_tab1(ingotno) VALUES('2222')
UPDATE test_tab1 SET ingotno = '3333'
*/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步