Настраиваем логи в остнастке RRAS, затем на SQL сервере создаем таблицу RAS_REPORTING, выполняем нижеприведенный скрипт:
CREATE PROCEDURE dbo.report_event
@doc ntext
AS
SET NOCOUNT ON
DECLARE @idoc int
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
DECLARE @event_id uniqueidentifier
SET @event_id = NEWID()
DECLARE @record_timestamp datetime
SET @record_timestamp = GETUTCDATE()
BEGIN TRANSACTION
INSERT dbo.event_main VALUES ( @event_id,
@record_timestamp
)
INSERT dbo.event_data
SELECT @event_id,
attribute_type,
attribute_value
FROM OPENXML(@idoc, '/Event/*')
WITH ( attribute_type varchar(64) '@mp:localname',
attribute_value nvarchar(1024) 'child::text()'
)
COMMIT TRANSACTION
EXEC sp_xml_removedocument @idoc
GO
/*Note The following example is useful if you have an empty database to work with:USE RAS_REPORTING*/
USE RAS_REPORTING
go
if exists (select * from dbo.sysobjects where id = object_id(N'[event_data]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [event_data]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[event_main]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [event_main]
GO
CREATE TABLE
dbo.event_main (
event_id uniqueidentifier,
record_timestamp datetime
)
go
CREATE TABLE
dbo.event_data(
event_id uniqueidentifier,
attribute_type varchar(64) ,
attribute_value nvarchar(1024)
)
go
Помним о том, что если по какой-то причине сервер RRAS не сможет записать событие в таблицу, то удаленный пользователь к сети подключиться не сможет.
Настраиваем логи в остнастке RRAS, затем на SQL сервере создаем таблицу RAS_REPORTING, выполняем нижеприведенный скрипт:
CREATE PROCEDURE dbo.report_event
@doc ntext
AS
SET NOCOUNT ON
DECLARE @idoc int
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
DECLARE @event_id uniqueidentifier
SET @event_id = NEWID()
DECLARE @record_timestamp datetime
SET @record_timestamp = GETUTCDATE()
BEGIN TRANSACTION
INSERT dbo.event_main VALUES ( @event_id,
@record_timestamp
)
INSERT dbo.event_data
SELECT @event_id,
attribute_type,
attribute_value
FROM OPENXML(@idoc, '/Event/*')
WITH ( attribute_type varchar(64) '@mp:localname',
attribute_value nvarchar(1024) 'child::text()'
)
COMMIT TRANSACTION
EXEC sp_xml_removedocument @idoc
GO
/*Note The following example is useful if you have an empty database to work with:USE RAS_REPORTING*/
USE RAS_REPORTING
go
if exists (select * from dbo.sysobjects where id = object_id(N'[event_data]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [event_data]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[event_main]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [event_main]
GO
CREATE TABLE
dbo.event_main (
event_id uniqueidentifier,
record_timestamp datetime
)
go
CREATE TABLE
dbo.event_data(
event_id uniqueidentifier,
attribute_type varchar(64) ,
attribute_value nvarchar(1024)
)
go
Помним о том, что если по какой-то причине сервер RRAS не сможет записать событие в таблицу, то удаленный пользователь к сети подключиться не сможет.