Проблемы при создании функции классификации Resource governer

mnemonic
Дата: 21.06.2011 10:40:17
Всем привет, пытаюсь вот настроить Resource governer (SQL Server 2008 R2 32 bit En), но по непонятной причине не получается создать функцию классификации.

USE master;
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname 
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable to hold the value returned in sysname.
    DECLARE @grp_name AS sysname
 
    IF (SUSER_NAME() = 'CGDM-EMEA\dkozubets')
        SET @grp_name = 'CRM'
    ELSE
        SET @grp_name = 'default'
    RETURN @grp_name
END
GO

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

В итоге при выполнении имеем ошибки

Msg 208, Level 16, State 1, Procedure ddlTriggerDatabaseLog, Line 25
Invalid object name 'dbo.DatabaseLog'.
Msg 10902, Level 16, State 1, Line 2
User-defined function 'dbo.rgclassifier_v1' does not exist in master database, or the user does not have permission to access it.

Что не так?

Спасибо!
daw
Дата: 21.06.2011 10:46:02

> Msg 208, Level 16, State 1, Procedure ddlTriggerDatabaseLog, Line 25

и чего у вас там, в этом триггере?

Posted via ActualForum NNTP Server 1.4

mnemonic
Дата: 21.06.2011 11:08:01
USE [master]
GO

/****** Object:  DdlTrigger [ddlTriggerDatabaseLog]    Script Date: 06/21/2011 11:06:11 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE TRIGGER [ddlTriggerDatabaseLog] ON DATABASE 
FOR DDL_DATABASE_LEVEL_EVENTS AS 
BEGIN
    SET NOCOUNT ON;

    DECLARE @data XML;
    DECLARE @schema sysname;
    DECLARE @object sysname;
    DECLARE @eventType sysname;

    SET @data = EVENTDATA();
    SET @eventType = @data.value('(/EVENT_INSTANCE/EventType)[1]', 'sysname');
    SET @schema = @data.value('(/EVENT_INSTANCE/SchemaName)[1]', 'sysname');
    SET @object = @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'sysname') 

    --IF @object IS NOT NULL
    --    PRINT '  ' + @eventType + ' - ' + @schema + '.' + @object;
    --ELSE
    --    PRINT '  ' + @eventType + ' - ' + @schema;

    --IF @eventType IS NULL
    --    PRINT CONVERT(nvarchar(max), @data);

    INSERT dbo.DatabaseLog (UserName, AppName, HostName, OriginalLogin, Event, [Schema], Object, TSQL, XmlEvent) 
    VALUES 
    (
        convert(sysname, current_user), 
        app_name(),
        host_name(),
        original_login(),
        @eventType, 
        CONVERT(sysname, @schema), 
        CONVERT(sysname, @object), 
        @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(max)'), 
        @data
    );
END;



GO

SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO

DISABLE TRIGGER [ddlTriggerDatabaseLog] ON DATABASE
GO

ENABLE TRIGGER [ddlTriggerDatabaseLog] ON DATABASE
GO



daw
Дата: 21.06.2011 11:15:20

> INSERT dbo.DatabaseLog (UserName, AppName, HostName, OriginalLogin, Event, [Schema], Object, TSQL, XmlEvent)

ну так, есть такая таблица в master-е?

Posted via ActualForum NNTP Server 1.4

mnemonic
Дата: 21.06.2011 11:19:16
Спасибо, понял, вот только не понятно откуда тригер такой взялся...