데이터베이스/용어정리
User 와 Users 이해.
Blue_bull
2025. 1. 16. 21:59
1. 사용자(User)의 공식적인 정의
- 사용자(User)는 데이터베이스와 상호작용하는 주체(계정)를 나타내며, 대부분의 RDBMS(Relational Database Management System)에서 표준적으로 사용되는 개념이다.
- 사용자(User)는 데이터베이스 내에서 인증(로그인)되고 데이터베이스 자원에 접근할 수 있는 계정을 말한다.
- 사용자는 데이터베이스의 객체(테이블, 뷰, 인덱스 등)를 생성하거나 사용하며, 특정 권한을 부여받아 작업을 수행할 수 있다.
2. 사용자(User)의 공식적인 위치
Oracle 데이터베이스
- Oracle에서 사용자(User)는 스키마(Schema)의 소유자로 정의된다.
- 사용자 계정은 다음과 같은 작업을 수행할 수 있다:
- 데이터베이스에 접속.
- 테이블, 뷰, 프로시저 등 객체 생성.
- 다른 사용자의 객체에 접근(필요한 권한이 있는 경우).
다른 RDBMS에서의 사용자
Oracle:
- 사용자는 데이터베이스의 개별 계정으로, 스키마를 소유하고 데이터베이스 객체를 관리한다.
- 예:
CREATE USER username IDENTIFIED BY password; GRANT CONNECT, RESOURCE TO username;
MySQL:
- 사용자 계정은 데이터베이스 연결 및 권한 부여를 통해 관리된다.
- 예:
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; GRANT SELECT, INSERT ON database_name.* TO 'username'@'host';
PostgreSQL:
- PostgreSQL에서 사용자는 Role이라는 개념으로 관리되며, 데이터베이스 객체에 대한 권한을 설정한다.
- 예:
CREATE ROLE username WITH LOGIN PASSWORD 'password'; GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA public TO username;
SQL Server:
- SQL Server에서 사용자는 로그인(Login)과 데이터베이스 사용자(Database User)로 나뉘어 관리된다.
- 예:
CREATE LOGIN username WITH PASSWORD = 'password'; CREATE USER username FOR LOGIN username; ALTER ROLE db_datareader ADD MEMBER username;
3. 사용자와 관련된 공식 용어
- 권한(Privileges):
- 사용자가 데이터베이스 내에서 수행할 수 있는 작업을 제어.
- 예:
SELECT
,INSERT
,UPDATE
,CREATE
,DROP
등.
- 스키마(Schema):
- 특정 사용자가 소유하는 데이터베이스 객체(테이블, 뷰 등)의 논리적 그룹.
- 역할(Role):
- 비슷한 작업을 수행하는 사용자들을 그룹화하여 권한을 부여할 수 있는 개념.
결론
- 사용자(User)는 데이터베이스 관리에서 공식적인 용어이며, 모든 주요 RDBMS에서 표준적으로 사용된다.
- 사용자는 데이터베이스와 상호작용하며, 권한과 데이터 접근을 제어하는 핵심적인 개념이다.
4. Oracle, MySQL, PostgreSQL에서 User
와 Users
의 개념
1. Oracle
User
: 개별 사용자 계정을 의미하며, 현재 세션에서 로그인한 사용자 계정을 확인할 수 있다. 예를 들어,SELECT USER FROM dual;
명령어를 실행하면 현재 데이터베이스에 접속 중인 사용자 계정 이름이 반환된다.Users
:- 일반 사용자 데이터를 저장하는 기본 테이블스페이스의 이름으로 사용된다(
USERS
). - 데이터베이스에 존재하는 사용자 계정 목록을 확인할 때
SELECT username FROM dba_users;
와 같은 명령어를 통해 조회할 수 있다.
- 일반 사용자 데이터를 저장하는 기본 테이블스페이스의 이름으로 사용된다(
2. MySQL
User
: MySQL에서도 개별 사용자 계정을 지칭한다. 사용자 계정은 특정 데이터베이스에 접근하고 작업을 수행하기 위한 로그인 계정이다.Users
: 복수형 개념으로는 존재하지 않는다. 하지만 여러 사용자 계정에 대한 정보를mysql.user
테이블에서 조회할 수 있다.
3. PostgreSQL
User
: PostgreSQL에서는 개별 사용자를 Role이라는 개념으로 관리하며, 로그인 계정을 포함한다. 사용자는 데이터베이스에 로그인하고 특정 권한을 부여받아 작업을 수행한다.Users
: PostgreSQL에서도 복수형으로는 명시적으로 존재하지 않는다. 그러나 모든 사용자 및 역할(Role) 목록은pg_roles
뷰를 통해 확인할 수 있다.
정리
User
는 Oracle, MySQL, PostgreSQL 모두에서 개별 사용자 계정을 지칭한다.Users
는 Oracle에서 테이블스페이스 이름으로 사용되며, 사용자 계정 목록 조회에도 사용된다. 그러나 MySQL과 PostgreSQL에서는 복수형으로 명시적인 용도는 없으며, 사용자 목록은 각각의 데이터베이스 시스템이 제공하는 특정 테이블이나 뷰를 통해 조회할 수 있다.
Oracle에서의 의미 차이 표
개념 | 설명 | 예제 코드 |
---|---|---|
USER | 현재 세션의 사용자 계정을 반환. | sql SELECT USER FROM dual; |
USERS 테이블스페이스 | 일반 사용자 데이터를 저장하는 기본 테이블스페이스. | sql CREATE USER john IDENTIFIED BY pass123 DEFAULT TABLESPACE users; |
DBA_USERS 뷰 | 데이터베이스에 존재하는 모든 사용자 계정을 보여주는 데이터 사전 뷰. | sql SELECT username FROM dba_users; |