Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

DB_METHOD

데이터베이스 내에서 현재 사용자가 접근 권한을 가진 클래스에 대해 그 메서드 정보를 보여준다.

속성명

데이터 타입

설명

meth_name

VARCHAR (255)

메서드명

class_name

VARCHAR (255)

메서드가 속한 클래스명

meth_type

VARCHAR (8)

인스턴스 메서드이면 ‘INSTANCE’, 클래스 메서드이면 ‘CLASS’

from_class_name

VARCHAR (255)

상속받은 메서드이면 그 메서드가 정의되어 있는 상위 클래스명이 설정되며 그렇지 않으면 NULL

from_meth_name

VARCHAR (255)

상속받은 메서드이며, 이름 충돌이 발생하여 이를 해결하기 위해 그 메서드명이 바뀐 경우, 상위 클래스에 정의된 원래 이름이 설정됨. 그 이외에는 모두 NULL

func_name

VARCHAR (255)

메서드에 대한 C 함수명

정의

CREATE VCLASS db_method (
meth_name, class_name, meth_type, from_class_name, from_meth_name, func_name)
AS
 
SELECT m.meth_name, m.class_of.class_name,
       CASE WHEN m.meth_type = 0 THEN 'INSTANCE' ELSE 'CLASS' END,
       m.from_class_of.class_name, m.from_meth_name, s.func_name
FROM _db_method m, _db_meth_sig s
WHERE s.meth_of = m AND
        (CURRENT_USER = 'DBA' OR
        {m.class_of.owner.name} subseteq (
                SELECT set{CURRENT_USER} + coalesce(sum(set{t.g.name}), set{})
                from db_user u, table(groups) as t(g)
                where u.name = CURRENT_USER ) OR
        {m.class_of} subseteq (
SELECT sum(set{au.class_of})
                FROM _db_auth au
                WHERE {au.grantee.name} subseteq (
                            SELECT set{CURRENT_USER} + coalesce(sum(set{t.g.name}), set{})
                            from db_user u, table(groups) as t(g)
                            where u.name = CURRENT_USER ) AND
                                    au.auth_type = 'SELECT'));

예제

다음 예제에서는 클래스 db_user의 메서드를 검색한다.

SELECT meth_name, meth_type, func_name

FROM db_method

WHERE class_name = 'db_user'

ORDER BY meth_type, meth_name;

  meth_name             meth_type             func_name

==================================================================

  'add_user'            'CLASS'               'au_add_user_method'

  'drop_user'           'CLASS'               'au_drop_user_method'

  'find_user'           'CLASS'               'au_find_user_method'

  'login'               'CLASS'               'au_login_method'

  'add_member'          'INSTANCE'            'au_add_member_method'

  'drop_member'         'INSTANCE'            'au_drop_member_method'

  'print_authorizations'  'INSTANCE'            'au_describe_user_method'

  'set_password'        'INSTANCE'            'au_set_password_method'

  'set_password_encoded'  'INSTANCE'            'au_set_password_encoded_method'

  'set_password_encoded_sha1'  'INSTANCE'            'au_set_password_encoded_sha1_method'