Сценарии расширенных свойств безопасности в SQL Server 2008? - PullRequest
0 голосов
/ 05 июля 2010

В SQL Server 2008 вы можете установить разрешения для данного пользователя до уровня таблицы и / или поля.

В графическом интерфейсе легко выбрать «Защищаемые» и применить их, новозможно ли внести изменения в сценарий?

1 Ответ

1 голос
/ 06 июля 2010

Да, вы можете создать сценарий разрешений безопасности (включая уровень столбца) с помощью оператора GRANT .

Если вы хотите использовать SSMS для записи информации, назначьте разрешения в Securables и нажмите кнопку Script в верхней части экрана.

альтернативный текст http://img337.imageshack.us/img337/7236/scriptperm.png

Ниже приведен пример сценариев разрешений на уровне столбцов с T-SQL:

USE master
GO

/* Create test database */
CREATE DATABASE StackO
GO

USE StackO
GO

/* Create a table */
CREATE TABLE TestSelect (
  RowID INT NOT NULL,
  RowValue VARCHAR(1) NOT NULL,
  RowProperty VARCHAR(1) NOT NULL
) 

/* Populate with data */
INSERT TestSelect VALUES (1,'A','X'),(2,'A','Y')

/* Create a user */
CREATE USER SO_User WITHOUT LOGIN

/* Grant the user SELECT permissions on RowID and RowValue */
GRANT SELECT ON TestSelect (RowID) TO SO_User
GO

GRANT SELECT ON TestSelect (RowValue) TO SO_User
GO

/* Deny user SELECT permissions on RowProperty */
DENY SELECT ON TestSelect (RowProperty) TO SO_User
GO

/* Test the permissions */
EXECUTE AS USER = 'SO_User'
GO

/* Confirm select on RowID and RowValue */
SELECT RowID, RowValue FROM TestSelect
GO

/* Confirm error message on RowProperty */
SELECT RowProperty FROM TestSelect
GO

/* Go back to regular user */
REVERT
GO

/* Cleanup */
USE master
GO

DROP DATABASE StackO
GO

И результаты:

RowID       RowValue
----------- --------
1           A
2           A

Msg 230, Level 14, State 1, Line 3
The SELECT permission was denied on the column 'RowProperty' 
of the object 'TestSelect", database 'SO', schema 'dbo'.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...