目錄

簡介

必要條件

需求

採用元件

設定

步驟1. MS SQL基本配置

步驟2. ISE基本配置

步驟3.配置使用者身份驗證

步驟4.配置組檢索

步驟5.配置屬性檢索

疑難排解

簡介

本文檔介紹如何使用Microsoft標準查詢語言(SQL)伺服器配置身份服務引擎(ISE)，以便使用開放資料庫連線(ODBC)進行ISE身份驗證

附註：開放式資料庫連線(ODBC)身份驗證要求ISE能夠獲取純文字檔案使用者密碼。密碼可以在資料庫中加密，但必須通過儲存過程解密。

必要條件

需求

思科建議您瞭解以下主題：

- 資料庫和ODBC概念

- Microsoft SQL Server

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- 身分識別服務引擎2.1

- MSSQL Server 2008 R2

設定

步驟1. MS SQL基本配置

配置步驟包括為ISE建立資料庫和一個有權訪問該資料庫的使用者。

附註：ISE僅支援SQL身份驗證，而不支援Windows帳戶。如果需要更改身份驗證模式，請參閱更改伺服器身份驗證模式

1.開啟SQL Server Management Studio(「開始」選單> Microsoft SQL Server 2008 R2)並建立資料庫：

2.保留預設選項或調整資料庫設定，如下圖所示：

3.建立使用者並設定許可權，如下圖所示：

步驟2. ISE基本配置

在管理>外部身份源> ODBC處建立ODBC身份源，然後測試連線：

步驟3.配置使用者身份驗證

對ODBC的ISE身份驗證使用儲存過程。用於身份驗證的儲存過程返回帶有以下語法的resultset:

價值

類型

結果

整數

組（僅用於與ACS 4.2的相容性）

整數或varchar(255)

帳戶資訊

varchar(255)

錯誤字串

varchar(255)

有關其他步驟，請參閱思科身份服務引擎2.1管理指南

提示：可以返回命名引數而不是resultset。它只是一種不同型別的輸出，功能是相同的。

1.定位至選項並取消選中阻止儲存需要重新建立表的更改覈取方塊（可選）：

2.建立表。請確保在主鍵上設定身份設定。要將user_id設定為主鍵，請按一下右鍵列名稱：

最終SQL:

CREATE TABLE [dbo].[ISE_Users](

[user_id] [int] IDENTITY(1,1) NOT NULL,

[username] [varchar](max) NOT NULL,

[password] [varchar](max) NOT NULL,

CONSTRAINT [PK_ISE_Users] PRIMARY KEY CLUSTERED

(

[user_id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

3.運行此查詢以插入一個使用者：

insert into ISE_Users(username,password) values('odbcuser1','odbcpass');

4.建立純文字檔案密碼身份驗證的過程（用於PAP、EAP-GTC內部方法、TACACS）：

CREATE PROCEDURE [dbo].[ISEAuthUserPlainReturnsRecordset]

@username varchar(255), @password varchar(255)

AS

BEGIN

IF EXISTS( SELECT username

FROM ISE_Users

WHERE username = @username

AND password = @password )

SELECT 0,11,'This is a very good user, give him all access','No Error'

FROM ISE_Users

WHERE username = @username

ELSE

SELECT 3,0,'odbc','ODBC Authen Error'

END

5.建立純文字檔案密碼提取過程(用於CHAP、MSCHAPv1/v2、EAP-MD5、LEAP、EAP-MSCHAPv2內部方法、TACACS):

CREATE PROCEDURE [dbo].[ISEFetchPasswordReturnsRecordset]

@username varchar(255)

AS

BEGIN

IF EXISTS( SELECT username

FROM ISE_Users

WHERE username = @username)

SELECT 0,11,'This is a very good user, give him all access','No Error',password

FROM ISE_Users

WHERE username = @username

ELSE

SELECT 3,0,'odbc','ODBC Authen Error'

END

6.建立檢查使用者名稱或電腦存在的過程(用於MAB、快速重新連線PEAP、EAP-FAST和EAP-TTLS):

CREATE PROCEDURE [dbo].[ISEUserLookupReturnsRecordset]

@username varchar(255)

AS

BEGIN

IF EXISTS( SELECT username

FROM ISE_Users

WHERE username = @username)

SELECT 0,11,'This is a very good user, give him all access','No Error'

FROM ISE_Users

WHERE username = @username

ELSE

SELECT 3,0,'odbc','ODBC Authen Error'

END

7.測試建立的過程：

以相同方式測試其他程式。

8.在ISE上配置過程並儲存：

9.使用ODBC建立簡單身份驗證規則並進行測試：

b3560#test aaa group ISE236 odbcuser1 odbcpass legacy

Attempting authentication test to server-group ISE236 using radius

User was successfully authenticated.

步驟4.配置組檢索

1.建立包含使用者組和用於多對多對映的表：

CREATE TABLE [dbo].[Groups](

[Group_ID] [int] IDENTITY(1,1) NOT NULL,

[Group_Name] [varchar](max) NOT NULL,

[Group_Desc] [text] NOT NULL,

CONSTRAINT [PK_Groups] PRIMARY KEY CLUSTERED

(

[Group_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMAR

CREATE TABLE [dbo].[User_Groups_Mapping](

[user_id] [int] NOT NULL,

[group_id] [int] NOT NULL

) ON [PRIMARY]

ALTER TABLE dbo.User_Groups_Mapping ADD CONSTRAINT

FK_User_Groups_Mapping_Groups FOREIGN KEY

(

group_id

) REFERENCES dbo.Groups

(

Group_ID

) ON UPDATE CASCADE

ON DELETE CASCADE

GO

ALTER TABLE dbo.User_Groups_Mapping ADD CONSTRAINT

FK_User_Groups_Mapping_ISE_Users FOREIGN KEY

(

user_id

) REFERENCES dbo.ISE_Users

(

user_id

) ON UPDATE CASCADE

ON DELETE CASCADE

2.新增組和對映，使ODBCUSER1同時屬於兩個組：

INSERT [dbo].[Groups] ([Group_ID], [Group_Name], [Group_Desc]) VALUES (1, N'ODBCGroup1', N'My Nice Group1')

INSERT [dbo].[User_Groups_Mapping] ([user_id], [group_id]) VALUES (1, 1)

INSERT [dbo].[Groups] ([Group_ID], [Group_Name], [Group_Desc]) VALUES (2, N'ODBCGroup2', N'My Nice Group2')

INSERT [dbo].[User_Groups_Mapping] ([user_id], [group_id]) VALUES (1, 2)

3.建立組檢索過程：

CREATE PROCEDURE [dbo].[ISEGroupsRetrieval]

@username varchar(255), @result int output

AS

BEGIN

if exists (select * from ISE_Users where username = @username)

begin

set @result = 0

select Group_Name from Groups where group_id in (select group_ID from User_Groups_Mapping where User_Groups_Mapping.USER_ID IN (select USER_ID from ISE_Users where username=@username ) )

end

else

set @result = 1

END

4.將其對映到提取組：

5.獲取組並將其新增到ODBC身份源：

6.新增不屬於任何組的另一個使用者：

insert into ISE_Users(username,password) values('odbcuser2','odbcpass');

7.建立特定策略集並測試：

b3560#test aaa group ISE236 odbcuser2 odbcpass legacy

Attempting authentication test to server-group ISE236 using radius

User authentication request was rejected by server.

b3560#test aaa group ISE236 odbcuser1 odbcpass legacy

Attempting authentication test to server-group ISE236 using radius

User was successfully authenticated.

步驟5.配置屬性檢索

1.為了簡化此示例，將平面表用於屬性：

CREATE TABLE [dbo].[User_Attributes](

[user_id] [int] NOT NULL,

[Attribute_Name] [varchar](max) NOT NULL,

[Attribute_Value] [varchar](max) NOT NULL

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[User_Attributes] WITH CHECK ADD CONSTRAINT [FK_User_Attributes_ISE_Users] FOREIGN KEY([user_id])

REFERENCES [dbo].[ISE_Users] ([user_id])

ON UPDATE CASCADE

ON DELETE CASCADE

GO

2.為以下使用者之一建立屬性：

INSERT [dbo].[User_Attributes] ([user_id], [Attribute_Name], [Attribute_Value]) VALUES (2, N'AwsomenessLevel', N'100')

INSERT [dbo].[User_Attributes] ([user_id], [Attribute_Name], [Attribute_Value]) VALUES (2, N'UserType', N'admin')

3.建立存儲過程：

CREATE PROCEDURE [dbo].[ISEAttrsRetrieval]

@username varchar(255), @result int output

AS

BEGIN

if exists (select * from ISE_Users where username = @username)

begin

set @result = 0

select attribute_name , attribute_value from user_attributes where USER_ID in(SELECT USER_ID from ISE_Users where username = @username)

end

else

set @result = 1

END

4.將其對映到提取屬性：

5.獲取屬性：

6.調整ISE規則：

疑難排解

如果連線不成功，請檢查windows事件日誌。在ISE上，嘗試連線時使用命令show logging application prrt-management.log tail。

錯誤的身份驗證模式示例：

bise236/admin# sh logg app prrt-management.log tail

2016-06-08 09:03:59,822 WARN [admin-http-pool177][] cisco.cpm.odbcidstore.impl.MSSQLServerDbAccess -:bastien::- Connection to ODBC DB failed. Exception: com.microsoft.sqlserver.jdbc.S

QLServerException: Login failed for user 'babaland\administrator'. ClientConnectionId:c74ade15-4f34-415a-9a94-4c54c58c0fc3

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'babaland\administrator'. ClientConnectionId:c74ade15-4f34-415a-9a94-4c54c58c0fc3

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)

at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)

at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)

at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)

使用者缺少開啟資料庫的許可權的示例：

2016-06-08 09:13:57,842 WARN [admin-http-pool159][] cisco.cpm.odbcidstore.impl.MSSQLServerDbAccess -:bastien::- Connection to ODBC DB failed. Exception: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "ISEDB" requested by the login. The login failed. ClientConnectionId:299c2956-6946-4282-b3ca-2aa86642a821

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "ISEDB" requested by the login. The login failed. ClientConnectionId:299c2956-6946-4282-b3ca-2aa86642a821

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)

at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)

at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)

為了對DB操作進行故障排除，請在管理>系統>日誌記錄>調試日誌配置下啟用日誌記錄元件odbc-id-store到DEBUG級別。

日誌放在prrt-management.log檔案中。

odbuser2示例：

2016-06-08 12:26:56,009 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Authenticate Plain Text Password. Username=odbcuser2, SessionID=0a3027ecLA_rJLKsS5QAzuRvluGWzdYe67rIgcG3MMQcpE8yKnw

2016-06-08 12:26:56,012 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24852

2016-06-08 12:26:56,012 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - get connection

2016-06-08 12:26:56,012 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - use existing connection

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 1

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Authenticate plain text password

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Prepare stored procedure call, procname=ISEAuthUserPlainReturnsRecordset

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Using recordset to obtain stored procedure result values

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24855

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Text: {call ISEAuthUserPlainReturnsRecordset(?, ?)}

2016-06-08 12:26:56,013 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Setup stored procedure input parameters, username=odbcuser2, password=***

2016-06-08 12:26:56,014 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Execute stored procedure call

2016-06-08 12:26:56,017 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Process stored procedure results

2016-06-08 12:26:56,017 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Obtain stored procedure results from recordset

2016-06-08 12:26:56,017 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Received result recordset, number of columns=4

2016-06-08 12:26:56,017 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Results successfully parsed from recordset

2016-06-08 12:26:56,018 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - release connection

2016-06-08 12:26:56,018 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 0

2016-06-08 12:26:56,018 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- Call to ODBC DB succeeded

2016-06-08 12:26:56,018 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.OdbcAuthResult -:::- Authentication result: code=0, Conection succeeded=false, odbcDbErrorString=No Error, odbcStoredProcedureCustomerErrorString=null, accountInfo=This is a very good user, give him all access, group=11

2016-06-08 12:26:56,019 DEBUG [Thread-4051][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24853

2016-06-08 12:26:56,026 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Username=odbcuser2, SessionID=0a3027ecLA_rJLKsS5QAzuRvluGWzdYe67rIgcG3MMQcpE8yKnw

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Fetch user groups. Username=odbcuser2, SessionID=0a3027ecLA_rJLKsS5QAzuRvluGWzdYe67rIgcG3MMQcpE8yKnw

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24869

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - get connection

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - use existing connection

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 1

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetch user groups

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Prepare stored procedure call, procname=ISEGroupsRetrieval

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Text: {call ISEGroupsRetrieval(?,?)}

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Setup stored procedure input parameters, username=odbcuser2

2016-06-08 12:26:56,029 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Execute stored procedure call

2016-06-08 12:26:56,031 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Process stored procedure results

2016-06-08 12:26:56,032 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Received epmty result set, no groups/attributes data can be obtained

2016-06-08 12:26:56,032 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Result code indicates success

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - release connection

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 0

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- Call to ODBC DB succeeded

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24870

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Got groups...

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Username=odbcuser2, ExternalGroups=[]

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Fetch user attributes. Username=odbcuser2, SessionID=0a3027ecLA_rJLKsS5QAzuRvluGWzdYe67rIgcG3MMQcpE8yKnw

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24872

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - get connection

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - use existing connection

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 1

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetch user attributes

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Prepare stored procedure call, procname=ISEAttrsRetrieval

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Text: {call ISEAttrsRetrieval(?,?)}

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Setup stored procedure input parameters, username=odbcuser2

2016-06-08 12:26:56,033 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Execute stored procedure call

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Process stored procedure results

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Received result recordset, total number of columns=2

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- According to column number expect multiple rows (vertical attributes/groups retured result)

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: AwsomenessLevel=100

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: UserType=admin

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Results successfully parsed from recordset

2016-06-08 12:26:56,035 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Result code indicates success

2016-06-08 12:26:56,036 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - release connection

2016-06-08 12:26:56,036 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 0

2016-06-08 12:26:56,036 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- Call to ODBC DB succeeded

2016-06-08 12:26:56,036 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24873

2016-06-08 12:26:56,036 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user attrs. Username=odbcuser2, Setting ISE_ODBC.AwsomenessLevel to 100

2016-06-08 12:26:56,036 DEBUG [Thread-84][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user attrs. Username=odbcuser2, Setting ISE_ODBC.UserType to admin