2015-11-11 2 views
-1

Я пишу программу в Java, в которой я должен проверить, имеет ли пользователь все минимальные разрешения, необходимые для создания, изменения и удаления таблицы, процедуры.Минимальный набор разрешений, необходимых для базы данных SQL Server?

По умолчанию моей базы данных SQL Server имеет следующий набор привилегий:

CREATE TABLE- 
CREATE VIEW- 
CREATE PROCEDURE- 
CREATE FUNCTION- 
CREATE RULE- 
CREATE DEFAULT- 
BACKUP DATABASE- 
BACKUP LOG- 
CREATE DATABASE- 
CREATE TYPE- 
CREATE ASSEMBLY- 
CREATE XML SCHEMA COLLECTION- 
CREATE SCHEMA- 
CREATE SYNONYM 
CREATE AGGREGATE 
CREATE ROLE 
CREATE MESSAGE TYPE 
CREATE SERVICE- 
CREATE CONTRACT- 
CREATE REMOTE SERVICE BINDING- 
CREATE ROUTE 
CREATE QUEUE 
CREATE SYMMETRIC KEY 
CREATE ASYMMETRIC KEY 
CREATE FULLTEXT CATALOG 
CREATE CERTIFICATE 
CREATE DATABASE DDL EVENT NOTIFICATION 
CONNECT- 
CONNECT REPLICATION 
CHECKPOINT 
SUBSCRIBE QUERY NOTIFICATIONS 
AUTHENTICATE 
SHOWPLAN 
ALTER ANY USER 
ALTER ANY ROLE 
ALTER ANY APPLICATION ROLE 
ALTER ANY SCHEMA- 
ALTER ANY ASSEMBLY 
ALTER ANY DATASPACE 
ALTER ANY MESSAGE TYPE 
ALTER ANY CONTRACT 
ALTER ANY SERVICE 
ALTER ANY REMOTE SERVICE BINDING 
ALTER ANY ROUTE 
ALTER ANY FULLTEXT CATALOG 
ALTER ANY SYMMETRIC KEY 
ALTER ANY ASYMMETRIC KEY 
ALTER ANY CERTIFICATE 
SELECT- 
INSERT- 
UPDATE- 
DELETE- 
REFERENCES- 
EXECUTE- 
ALTER ANY DATABASE DDL TRIGGER 
ALTER ANY DATABASE EVENT NOTIFICATION 
ALTER ANY DATABASE AUDIT 
ALTER ANY DATABASE EVENT SESSION 
KILL DATABASE CONNECTION 
VIEW DATABASE STATE 
VIEW DEFINITION 
TAKE OWNERSHIP 
ALTER- 
CONTROL 

Однако я проверка только для ниже определенных разрешений:

CREATE TABLE 
CREATE VIEW 
CREATE PROCEDURE 
CREATE FUNCTION 
BACKUP DATABASE 
CREATE TYPE 
CREATE SCHEMA 
CREATE SYNONYM 
CREATE AGGREGATE 
CREATE ROLE 
CREATE MESSAGE TYPE 
CONNECT 
ALTER ANY ROLE 
ALTER ANY APPLICATION ROLE 
ALTER ANY SCHEMA 
ALTER ANY MESSAGE TYPE 
SELECT 
INSERT 
UPDATE 
DELETE 
REFERENCES 
EXECUTE 
VIEW DATABASE STATE 
VIEW DEFINITION 
ALTER 
CONTROL 

Однако, с этим набором разрешений, когда я выполняю любой пользовательский тип данных (sp_addtype), он не показывает, что у пользователя нет разрешений. Может кто-нибудь, пожалуйста, скажите мне, какие дополнительные разрешения от первого набора разрешений мне нужно добавить во втором наборе разрешений?

+0

Вы были как-то не в состоянии проверить это? –

+0

Я протестировал его, но при этом он дает ошибку разрешений: EXEC sp_addtype COMPANY_ID, 'INTEGER', 'NOT NULL' – mahan07

+0

Нет, я имею в виду, почему вы не проверили после добавления разрешения, которое оно работает снова? И если добавить все это не помогло, как мы могли бы тогда решить это? –

ответ

1

[sp_addtype]

Права доступа Требуется членство в db_owner или db_ddladmin фиксированной роли базы данных.

Вы можете посмотреть в процедуре [sp_addtype]:

if is_member('db_owner')=0 and is_member('db_ddladmin')=0 
begin 
    raiserror(15247, -1, -1) 
    return (1) 
end 
Смежные вопросы