1,新建只能访问某一个表的只读用户。
--添加只允许访问指定表的用户:
execsp_addlogin'用户名','密码','默认数据库名'
--添加到数据库
execsp_grantdbaccess'用户名'
--分配SELECT整表权限
GRANTSELECTON表名TO[用户名]
--分配SELECT权限到具体的列
GRANTSELECTON表名(id,AA)TO[用户名]
例如:
--添加只允许访问指定表的用户:
execsp_addlogin'read','123456','test'
execsp_grantdbaccess'read'
--分配SELECT整表权限
GRANTSELECTONdbo.UserCardsTO[read]
2,新建访问整一个数据库的只读用户
--添加只允许访问指定表的用户:
execsp_addlogin'用户名','密码','默认数据库名'
--添加到数据库
execsp_grantdbaccess'用户名'
--添加到角色
execsp_addrolemember'db_datareader','用户名'
3,固定服务器角色
sysadmin
可以在SQLServer中执行任何活动。
serveradmin
可以设置服务器范围的配置选项,关闭服务器。
setupadmin
可以管理链接服务器和启动过程。
securityadmin
可以管理登录和CREATEDATABASE权限,还可以读取错误日志和更改密码。
processadmin
可以管理在SQLServer中运行的进程。
dbcreator
可以创建、更改和除去数据库。
diskadmin
可以管理磁盘文件。
bulkadmin
可以执行BULKINSERT语句。
4,(用户映射)数据库角色成员身份
db_owner执行数据库中的所有维护和配置活动。
db_accessadmin添加或删除Windows用户、组和SQLServer登录的访问权限。
db_datareader读取所有用户表中的所有数据。
db_datawriter添加、删除或更改所有用户表中的数据。
db_ddladmin在数据库中运行任何数据定义语言(DDL)命令。
db_securityadmin修改角色成员身份并管理权限。
db_backupoperator备份数据库。
db_denydatareader无法读取数据库用户表中的任何数据。
db_denydatawriter无法添加、修改或删除任何用户表或视图中的数据。
如果要对SQL Server表分配只读权限,应该如何实现呢?下面就教您针对SQL Server表的只读权限分配方法,希望对您学习SQL Server表权限方面有所启迪。
- --先创建测试库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'
- */