какие права должны быть предоставлены для моего живого сервера asp.net sql? - PullRequest
0 голосов
/ 03 апреля 2012

Мне интересно, какие права должны быть предоставлены пользователю сервера sql для веб-сайта asp.net с учетом следующих критериев

Пользователь сервера Sql

Должен уметь

  • чтение из таблиц
  • вставить в таблицы
  • обновление строк
  • выполнить sp, udf

НЕ ДОЛЖЕН быть в состоянии

  • удалить любую из таблиц
  • удалить любые записи из таблицы
  • удалить все сохраненные процедуры, udf или любые другие процедуры
  • создать новую таблицу
  • создать новый sp, udf, триггер, индекс и т. Д.
  • изменить любой стол
  • изменить любые столбцы в таблицах
  • изменить любой sp, udf, триггер, индекс и т. Д.
  • любой другой опасный материал

1 Ответ

1 голос
/ 03 апреля 2012

Создайте пользователя и затем примените следующие сценарии, заменяя 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'
...