我想知道考虑到以下标准,asp.net 网站的 sql server 用户应该赋予哪些权利
Sql 服务器用户
应该可以做
- 从表中读取
- 插入表格
- 更新行
- 执行 sp, udf
不应该
- 删除任何表
- 从表中删除任何记录
- 删除任何存储过程、udf 或任何其他过程
- 创建新表
- 创建新的 sp、udf、触发器、索引等
- 更改任何表
- 更改表中的任何列
- 更改任何 sp、udf、触发器、索引等
- 任何其他危险的东西
我想知道考虑到以下标准,asp.net 网站的 sql server 用户应该赋予哪些权利
Sql 服务器用户
应该可以做
不应该
创建一个用户,然后应用以下脚本将 USERNAME 替换为您的 sql 用户。这将生成您应该需要的所有脚本!
--STORED PROCS
select 'GRANT EXECUTE ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id
where type = 'P'
--TABLES
select 'GRANT SELECT ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id
where type = 'U'
--TABLES
select 'GRANT INSERT ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id
where type = 'U'
--TABLES
select 'GRANT UPDATE ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id
where type = 'U'
--FUNCTIONS
select 'GRANT EXECUTE ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id
where type = 'FN'
--VIEWS
select 'GRANT SELECT ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO dardsfp' as SQL from sys.objects
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id
where type ='V'