Как отключить Studio управления SQL Server для пользователя

Конкретный пример, который вы приводите:

Например, два элемента * p1 и * p2 имеют свойство p2 = p1 + 1 или p1 = p2 + 1, если и только если они смежные в физической памяти?

выйдет из строя на платформах, которые не имеют плоского адресного пространства, таких как PIC . Чтобы получить доступ к физической памяти на PIC, вам нужны и адрес, и номер банка, но последний может быть получен из внешней информации, такой как конкретный исходный файл. Таким образом, выполнение арифметики с указателями из разных банков даст неожиданные результаты.

8
задан Jeff Stock 22 May 2009 в 15:09
поделиться

9 ответов

Вам НЕ нужно беспокоиться о том, что у них есть доступ к инструменту. Просто убедитесь, что они не знают ни одного входа в систему SQL для конкретных баз данных, у которых есть разрешения на чтение / запись; если они есть, измените пароль. Если у них есть доступ к БД через аутентификацию Windows, убедитесь, что они находятся в роли носителя данных . Вы можете использовать роли для управления тем, что пользователи могут делать в SQL.

7
ответ дан 5 December 2019 в 04:58
поделиться

Вы можете использовать команду ЗАПРЕТИТЬ ПРОСМОТРЕТЬ ЛЮБУЮ БАЗУ ДАННЫХ для определенных пользователей. Это новая функция, доступная в SQL Server 2008.

Она не позволяет пользователю видеть системный каталог (sys.databases, sys.sysdatabases и т. Д.) И, следовательно, делает БД невидимой для них в SQL Management Studio (SSMS). .

Выполните эту команду из главной базы данных:

DENY VIEW ANY DATABASE TO 'loginName'

Пользователь все еще может получить доступ к базе данных через ваше приложение. Однако, если они входят в систему через SSMS, ваша база данных не будет отображаться в списке баз данных, а если они откроют окно запроса, ваша база данных не появится в раскрывающемся списке.

Однако это не является надежным. Если пользователь достаточно умен, чтобы запустить команду запроса:

USE <YourDatabaseName>

, тогда он увидит базу данных в анализаторе запросов.

Поскольку это решение дает вам 90% результатов,

16
ответ дан 5 December 2019 в 04:58
поделиться

Я бы посоветовал вам заблокировать базу данных и дать пользователю соответствующие права только для чтения (или другие). Таким образом, пользователь может по-прежнему использовать Management Studio для выполнения запросов на выборку и т. Д.

Если вы не хотите, чтобы пользователь вообще имел какие-либо права, вы также можете это сделать.

4
ответ дан 5 December 2019 в 04:58
поделиться

Если ваше приложение использует только хранимые процедуры для изменения данных, вы можете предоставить конечным пользователям доступ для запуска хранимых процедур, но запретить им доступ для изменения таблиц.

1
ответ дан 5 December 2019 в 04:58
поделиться
  • Не сообщайте им, что такое вход в базу данных.
  • Если вы не можете ограничить вход, используйте хранимые процедуры исключительно для обновлений и отключите CREATE, DELETE, INSERT или ОБНОВЛЕНИЕ разрешений для этого пользователя.
1
ответ дан 5 December 2019 в 04:58
поделиться

Если ваше приложение работает как учетная запись службы / пользователя, то только эта учетная запись требует доступа к базе данных. Индивидуальные пользователи учетной записи не требуют доступа к базе данных, и поэтому у них даже не будет доступа для чтения. Ваше приложение будет шлюзом к данным.

Если пользователи запускают приложение под своими учетными записями, предоставьте им разрешение только на чтение. Вы можете просто добавить их к роли db_datareader.

Надеюсь, это поможет!

2
ответ дан 5 December 2019 в 04:58
поделиться

Роль приложения позволит вам защитить объекты базы данных для вашего приложения вместо вошедшего в систему пользователя.

1
ответ дан 5 December 2019 в 04:58
поделиться

I agree with Jon Erickson as a general rule

  • do not allow any users access to the tables, but only allow access through stored procs
  • do not allow general user accounts access to stored procs, but only the account your app runs under (whether it's an integrated login or SQL login)
0
ответ дан 5 December 2019 в 04:58
поделиться

Хорошо используйте роли базы данных, если пользователи должны иметь только доступ SELECT (чтение), назначьте им роль db_datareader. Даже если они войдут в систему с использованием SSMS, они смогут выполнять только операторы SELECT.

0
ответ дан 5 December 2019 в 04:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: