0

我想知道考虑到以下标准,asp.net 网站的 sql server 用户应该赋予哪些权利

Sql 服务器用户

应该可以做

  • 从表中读取
  • 插入表格
  • 更新行
  • 执行 sp, udf

不应该

  • 删除任何表
  • 从表中删除任何记录
  • 删除任何存储过程、udf 或任何其他过程
  • 创建新表
  • 创建新的 sp、udf、触发器、索引等
  • 更改任何表
  • 更改表中的任何列
  • 更改任何 sp、udf、触发器、索引等
  • 任何其他危险的东西
4

1 回答 1

1

创建一个用户,然后应用以下脚本将 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'
于 2012-04-03T14:12:07.780 回答