이러한 현상은 해당 계정에 ADMINISTER DATABASE TRIGGER 권한이 있을 경우에 발생한다. (해당 권한을 가진 유저는 로그온트리거 접근 제어가 안된다.)
-- 권한 제거 REVOKE ADMINISTER DATABASE TRIGGER TO UserName; -- 권한 생성 GRANT ADMINISTER DATABASE TRIGGER TO UserName;
-- 권한 제거 REVOKE ADMINISTER DATABASE TRIGGER TO UserName; -- 권한 생성 GRANT ADMINISTER DATABASE TRIGGER TO UserName;
#define JK_API __declspec(dllexport)
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _JK_test_struct{
int count;
char name[32];
}JK_test_struct;
JK_API int JK_test_function(JK_test_struct* jkStruct)
{
// ...
}
#ifdef __cplusplus
}
#endif
namespace JK_space
{
internal struct JK_test_struct {
[MarshalAs(UnmanagedType.I4)]
public int count;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=32)]
public string name;
};
internal static class JKNativeMethods
{
[DllImport("FSB.dll")]
[return: MarshalAs(UnmanagedType.I4)]
internal static extern int JK_test_function(ref JK_test_struct jkStruct);
}
}
namespace JK_space
{
public class JKTestClass
{
public static void Main(string[] args)
{
// member variables already memory allocated.
JK_test_struct jkStruct = new JK_test_struct();
JKNativeMethods.JK_test_function(ref jkStruct);
System.Console.WriteLine("count is " + jkStruct.count);
System.Console.WriteLine("name is " + jkStruct.name);
}
}
}