mysql 中alter users_ALTER USER - 改变数据库用户帐号

SYNOPSIS

ALTER USER name [ [ WITH ] option [ ... ] ]

where option can be:

[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'

| CREATEDB | NOCREATEDB

| CREATEUSER | NOCREATEUSER

| VALID UNTIL 'abstime'

ALTER USER name RENAME TO newname

ALTER USER name SET parameter { TO | = } { value | DEFAULT }

ALTER USER name RESET parameter

DESCRIPTION 描述

ALTER USER 用于更改用户的 PostgreSQL 帐号的属性。 没有在该命令中出现的属性保持原值。

这条命令模式中的第一个变种修改某些全局用户权限和认证设置。 (见下文获取细节。)只有数据库超级用户可以用这条命令改变这些权限和使口令失效。普通用户只能修改它们自己的口令。

第二个变种改变用户的名字。只有数据库超级用户才能重新命名用户帐户。 当前会话用户不能重命名。(如果想这么干,先用另外一个用户账号连接。)

第三和第四个变种修改用户会话的特定配置变量的缺省值。 当该用户随后启动一个新的会话时,声明的数值将成为会话的缺省,覆盖 任何出现在 postgresql.conf 里,或者从 postmaster  命令行接收到的设置。 普通用户可以修改它们自己的会话缺省。超级用户可以修改任何用户的缺省。

PARAMETERS 参数

name想进行属性更改的用户名字。password此帐号所使用的新口令。ENCRYPTEDUNENCRYPTED这些关键字控制口令是否以加密形式存在 pg_shadow 里。 (参阅 CREATE USER

[create_user(7)] 获取这个选项的更多信息。)CREATEDBNOCREATEDB这个子句定义该用户创建数据库的能力。 如果声明了CREATEDB,该用户可以创建她自己的数据库。 用NOCREATEDB将剥夺一个用户创建数据库的能力。CREATEUSERNOCREATEUSER这个子句决定一个用户能否创建新用户。 这个选项同样还令该用户成为超级用户,可以超越所有访问限制。abstime该用户帐号口令的过期的日期(和可选的时间)。 要设置一个口令从不过期,可以用'infinity'。newname用户的新名字。parametervalue把该用户特定的配置变量的会话缺省设置为给定的数值。 如果 value 为 DEFAULT  或者使用了等效的 RESET,那么删除用户相关的变量, 并且该用户将在新会话中继承缺省设置。使用 RESET ALL  清除所有设置。

参阅 SET [set(7)] 和 Section 16.4 ``Run-time Configuration'' 获取有关可用变量和数值的更多信息。

NOTES 注意

使用 CREATE USER [create_user(7)] 创建新用户和 DROP USER

[drop_user(7)] 删除用户。

ALTER USER 无法改变一个用户的组的成员性。 用 ALTER GROUP [alter_group(7)]

实现这个目地。

使用 ALTER DATABASE [alter_database(7)],我们还可能把一个会话缺省和某个数据库绑定起来,而不是和某个用户绑定。

EXAMPLES 例子

更改一用户口令:

ALTER USER davide WITH PASSWORD 'hu8jmn3';

更改一用户有效期:

ALTER USER manuel VALID UNTIL 'Jan 31 2030';

更改一用户有效期, 声明其权限应该在用比UTC早一小时的时区记时的 2005 年 5 月 4 日正午失效

ALTER USER chris VALID UNTIL 'May 4 12:00:00 2005 +1';

令用户永远有效:

ALTER USER fred VALID UNTIL 'infinity';

赋予一用户创建新用户和新数据库的权限:

ALTER USER miriam CREATEUSER CREATEDB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Android使用Room数据库迁移(Migration)的问题,我可以给你一些简单的解释和示例。 在Android,Room是一个SQLite数据库对象映射库,它提供了一种简单的方法来处理SQLite数据库。当你需要修改数据库结构时,你需要使用Room数据库迁移(Migration)来保持数据的完整性。 下面是一个简单的Room数据库迁移(Migration)的示例: 首先,定义一个新的实体类,例如: ``` @Entity(tableName = "users") public class User { @PrimaryKey public int id; @ColumnInfo(name = "user_name") public String name; public String email; } ``` 然后,在你的数据库,添加一个新的版本和对应的迁移代码,例如: ``` @Database(entities = {User.class}, version = 2) public abstract class AppDatabase extends RoomDatabase { public abstract UserDao userDao(); // Add migration code here static final Migration MIGRATION_1_2 = new Migration(1, 2) { @Override public void migrate(@NonNull SupportSQLiteDatabase database) { database.execSQL("ALTER TABLE users ADD COLUMN last_name TEXT"); } }; } ``` 在上面的代码,我们定义了一个新的版本2,并添加了一个新的实体类User,同时定义了一个名为MIGRATION_1_2的迁移对象。迁移对象重写了migrate()方法,在该方法执行了数据库的修改操作,例如添加了一个新的last_name列。 最后,在你的应用程序,使用以下代码创建或打开数据库: ``` AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name") .addMigrations(AppDatabase.MIGRATION_1_2) .build(); ``` 在上面的代码,我们使用addMigrations()方法将MIGRATION_1_2迁移对象添加到数据库的创建。 通过以上步骤,你就可以使用Room数据库迁移(Migration)来修改数据库结构,同时保持数据的完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值