Может кто-нибудь объяснить, почему мой код не выполняется без ошибок?Я провел исследование, но я не вижу, где я сделал ошибку - PullRequest
0 голосов
/ 21 апреля 2019

Попытка создать роли в SQL и назначить им разрешения. После создания ролей я хочу создать новых пользователей для назначения роли

Create Role Sales_Person
    Grant Insert on Northwind.dbo(Customers, Orders, OrderDetails) 
    To Sales_Person
    Grant Select, Update on Northwind.dbo.Customers(CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax)
    To Sales_Person
Create Role Sale_Manager
    Grant Insert, Delete on Northwind.dbo(Customers, Orders, OrderDetails)
    To Sale_Manager
    Grant Select, Update on Northwind.dbo.Customers(CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax)
    To Sale_Manager
Create Role HR_Person
    Grant Insert on Northwind.dbo.Employees
    To HR_Person
    Grant Select, Update on Northwind.dbo.Employees(LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City, Region, PostalCode, HomePhone, Country, Extension, Notes, ReportTo)
    To HR_Person
Create Role HR_Manager
    Grant Insert, Delete on Northwind.dbo.Employees
    To HR_Manager
    Grant Select, Update on Northwind.dbo.Employees(LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City, Region, PostalCode, HomePhone, Country, Extension, Notes, ReportTo)
    To HR_Manager
Create User Jane1 Without Login
    Grant Sales_Person to Jane1
Create User Joan1 Without Login
    Grant Sale_Manager to Joan1
Create User Joe1 Without Login
    Grant HR_Person to Joe1
Create User James1 Without Login

Сообщение об ошибке «Msg 1020, уровень 15, состояние 1, строка 0» Списки дочерних объектов (например, выражения столбцов или безопасности) нельзя указывать для разрешений на уровне объекта. "

1 Ответ

0 голосов
/ 21 апреля 2019

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

Create Role Sales_Person
    Grant Insert on Northwind.dbo.Customers 
    To Sales_Person
    Grant Insert on Northwind.dbo.Orders
    To Sales_Person
    Grant Insert on Northwind.dbo.OrderDetails
    To Sales_Person
    Grant Select, Update on Northwind.dbo.Customers(CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax)
    To Sales_Person
Create Role Sale_Manager
    Grant Insert, Delete on Northwind.dbo.Customers
    To Sale_Manager
    Grant Insert, Delete on Northwind.dbo.Orders
    To Sale_Manager
    Grant Insert, Delete on Northwind.dbo.OrderDetails
    To Sale_Manager
    Grant Select, Update on Northwind.dbo.Customers(CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax)
    To Sale_Manager
Create Role HR_Person
    Grant Insert on Northwind.dbo.Employees
    To HR_Person
    Grant Select, Update on Northwind.dbo.Employees(LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City, Region, PostalCode, HomePhone, Country, Extension, Notes, ReportTo)
    To HR_Person
Create Role HR_Manager
    Grant Insert, Delete on Northwind.dbo.Employees
    To HR_Manager
    Grant Select, Update on Northwind.dbo.Employees(LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City, Region, PostalCode, HomePhone, Country, Extension, Notes, ReportTo)
    To HR_Manager
Create User Jane1 Without Login
    Grant Sales_Person to Jane1
Create User Joan1 Without Login
    Grant Sale_Manager to Joan1
Create User Joe1 Without Login
    Grant HR_Person to Joe1
Create User James1 Without Login
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...