database - oracle中schema和service_name是什么关系?

标签 database oracle database-schema

当我连接到 oracle 数据库 (11g) 时,我必须使用以下信息: 架构名称(用户名),密码,服务名称(数据库名称?)。

连接字符串看起来像'schemaName/pwd@host:1521/serviceName'。

我知道 Schema 与 User 几乎相同。包含所有对象(如表、索引、 View 等)的集合的模式由用户拥有。 我的问题是如果模式已经包含表和其他对象,为什么我们在尝试连接时必须指定服务名称。(在客户端工具或 tns 文件中的配置中) 因为使用schema_name/password,我们可以定位到我们想要的单个表,这里service_name的作用是什么?

最佳答案

服务是同一台机器/服务器/计算机上不同数据库之间的连接方式之一。理论上,您无法提及这一点并仍然获得正确的数据库(如果只有 1 个数据库),但在数据库连接的上下文中,所有参数都需要明确给出。我相信这是因为安全性和双重检查。

请注意,端口号也已给出,这是区分数据库的另一种方式。但是,请注意可以通过同一端口访问不同的数据库。

服务通常是对正在连接的实际数据库实例的提示。

关于database - oracle中schema和service_name是什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27143126/

相关文章:

mysql - 复杂的mysql插入查询

database - Codeigniter 数据库错误处理

php - MYSQL 支持面向对象数据库吗?

java - 如何让组合框说一件事但放入另一件事?

c# - Entity Framework : Where the heck is it getting these columns from?

sql - Oracle级联删除

ruby - 您将如何在 MongoDB 中有效地实现这些查询?

oracle - for循环后的最后一个过程语句在pl sql中不起作用

sql - 过程创建所需的简单初学者 Oracle PL/SQL 帮助/修复

oracle11g - Oracle SQL Developer - 如何限制用户只能查看特定模式