
SQLite3::setAuthorizer 메서드는 사용자 권한을 설정하는 메서드입니다.
이 메서드는 4개의 파라미터를 받습니다.
1. authorizer : 사용자 권한을 설정하는 함수를 받습니다.
2. arg : 사용자 권한을 설정하는 함수에 전달할 인자를 받습니다.
3. code : 사용자 권한을 설정하는 함수에서 처리할 코드를 받습니다.
4. *extra : 사용자 권한을 설정하는 함수에서 처리할 추가 인자를 받습니다.
사용자 권한을 설정하는 함수는 4개의 코드를 반환할 수 있습니다.
1. SQLITE_OK : 쿼리를 허용합니다.
2. SQLITE_DENY : 쿼리를 거부합니다.
3. SQLITE_IGNORE : 쿼리를 실행하지 않습니다.
4. SQLITE_NOMEM : 메모리가 부족하여 쿼리를 실행할 수 없습니다.
사용자 권한을 설정하는 메서드를 사용하여, 사용자에게 특정 쿼리를 허용하거나 거부하는 방법은 다음과 같습니다.
- 사용자 권한을 설정하는 함수에서 SQLITE_OK를 반환하면 쿼리를 허용합니다.
- 사용자 권한을 설정하는 함수에서 SQLITE_DENY를 반환하면 쿼리를 거부합니다.
- 사용자 권한을 설정하는 함수에서 SQLITE_IGNORE를 반환하면 쿼리를 실행하지 않습니다.
- 사용자 권한을 설정하는 함수에서 SQLITE_NOMEM을 반환하면 메모리가 부족하여 쿼리를 실행할 수 없습니다.
예를 들어, 사용자에게 INSERT 쿼리를 허용하고, UPDATE 쿼리를 거부하는 코드는 다음과 같습니다.
#hostingforum.kr
php
$db = new SQLite3('example.db');
function authorizer($action, $arg, $code, $extra) {
if ($action == 'INSERT' || $action == 'UPDATE') {
return SQLITE_DENY;
} else {
return SQLITE_OK;
}
}
$db->setAuthorizer('authorizer');
$db->exec('INSERT INTO users (name, email) VALUES ("John Doe", "john@example.com")');
$db->exec('UPDATE users SET name = "Jane Doe" WHERE email = "john@example.com"');
2025-04-17 07:31