gerrit 用户的管理 -- H2数据库小记

前言:   公司准备开发android 7.1的OS,所以搭建了gerrit服务器,进行源码的管理,服务器搭建之后,源码同步到服务器,然后各开发人员注册账号进行代码同步到本地修改及提交.

此时出现问题

1、注册

可以看之前发布的文章 https://blog.csdn.net/yi_tianchou/article/details/106781589

注册之后 ,可以拉取代码,

2、修改并提交

但是提交的时候出现了问题,提示公钥失败(如图)

 

经过一番排查对比

发现 注册的时候 使用的用户名 和邮箱的用户名不一致.

操作记录:

1、登录服务器,删除 gerrit.passwd 文件中用户

gerrit项目文件在 home根目录下

用户文件路径: ../gerrit/review_site7.1/etc/gerrit.passwd

em@em:/home/gerrit/review_site7.1/etc$ sudo vim  gerrit.passwd

使用vim指令删除了 当前有问题的用户记录

结果就是 用户不能登录 不能拉取代码,(以为这就删除用户了,太天真了,这个只是删除了登录用户的名称和密码,其实数据库里还是有记录的,下一步就知道了)

2、在服务器上 新增用户 ,用户名和使用的邮箱名一致(因为都是公司邮箱,所以第一次注册的邮箱和第二次注册使用的邮箱一样,这个是诱发以下问题的主要原因)

em@em:/home/gerrit/review_site7.1/etc$ htpasswd gerrit.passwd  xxxxx

xxxx 就是用户名

添加成功之后 ,要到网页端登录 注册邮箱和 添加公钥.

(2.1) 添加公钥,没什么说的,

(2.2)注册邮箱. 出现了问题

提示已经注册过.无法验证邮箱.

难道不能直接删除用户?需要先删除邮箱.

3、恢复之前删除的用户,登录网页之后,通过页面删除邮箱

4、删除邮箱之后,重新发送邮件注册邮箱.

至此 新用户添加好了,不过出现了新的问题,诡异的现象,恢复之前的用户和现在的用户都正常了,都可以提交和拉取代码,

然后对比两个用户,

登录名(username)不同, 

FULL name 相同

邮箱  相同

为什么 新用户注册之后 ,之前的用户也可以使用?   诡异 (原因后面将提到)

既然能用了,以为大功告成.

 

过了  10分钟   ,同事提出新的需求,账号要有管理员权限.

登录网页操作,在add用户的时候搜索出两条一样的记录,点击ADD 提示 “

add Account Not Found: xxxx <xxxx@126.com>”

无法添加,明明搜索到两条,却说不存在,只能是有一个原因,这两个账号虽然用户名不同,但是对于数据库认为是一样的,搜索的时候出现两条则报错了,

 

后面是艰辛的 gerrit服务器之旅,

所有的东西都别人处理的,我最多到服务器上添加一个用户,现在处理这样的问题,头大.

百度..................

好一个帖子解决了我很多的疑惑  

 

Gerrit+apache+H2数据库简单安装配置及建库流程

../gerrit 目录下 

bin 下 gerrit.sh 脚本    参数 start 启动    stop停止服务

           gerrit.war 是服务器编译代码

db 是gerrit 使用的H2的数据库,(我们用的就是gerrit自带的)

etc 是 gerrit的配置文件

         gerrit.config 服务器配置文件

       gerrit.passwd 启动服务之后,web页面登录使用的用户信息

logs 下面是 服务器运行日志和 用户通过ssh 连接的日志,提交的日志等

操作流程:

gerrit2@ubuntu:~/review_site$ ./bin/gerrit.sh stop
Stopping Gerrit Code Review: OK
gerrit2@ubuntu:~/review_site$ ls bin
gerrit.sh  gerrit.war
gerrit2@ubuntu:~/review_site$ java -jar bin/gerrit.war gsql
[2013-05-01 01:05:57,003] INFO  com.google.gerrit.server.git.LocalDiskRepositoryManager : Defaulting core.streamFileThreshold to 220m
Welcome to Gerrit Code Review 2.6-rc1
(H2 1.3.168 (2012-07-13))


Type '\h' for help.  Type '\r' to clear the buffer.

gerrit> \h
General
  \q        quit

Query Buffer
  \g        execute the query buffer
  \p        display the current buffer
  \r        clear the query buffer

Informational
  \d        list all tables
  \d NAME   describe table
gerrit> \d
                     List of relations
 TABLE_SCHEM | TABLE_NAME                           | TABLE_TYPE
 ------------+--------------------------------------+-----------
 PUBLIC      | ACCOUNTS                             | TABLE
 PUBLIC      | ACCOUNT_DIFF_PREFERENCES             | TABLE
 PUBLIC      | ACCOUNT_EXTERNAL_IDS                 | TABLE
 PUBLIC      | ACCOUNT_GROUPS                       | TABLE
 PUBLIC      | ACCOUNT_GROUP_INCLUDES_BY_UUID       | TABLE
 PUBLIC      | ACCOUNT_GROUP_INCLUDES_BY_UUID_AUDIT | TABLE
 PUBLIC      | ACCOUNT_GROUP_MEMBERS                | TABLE
 PUBLIC      | ACCOUNT_GROUP_MEMBERS_AUDIT          | TABLE
 PUBLIC      | ACCOUNT_GROUP_NAMES                  | TABLE
 PUBLIC      | ACCOUNT_PATCH_REVIEWS                | TABLE
 PUBLIC      | ACCOUNT_PROJECT_WATCHES              | TABLE
 PUBLIC      | ACCOUNT_SSH_KEYS                     | TABLE
 PUBLIC      | CHANGES                              | TABLE
 PUBLIC      | CHANGE_MESSAGES                      | TABLE
 PUBLIC      | PATCH_COMMENTS                       | TABLE
 PUBLIC      | PATCH_SETS                           | TABLE
 PUBLIC      | PATCH_SET_ANCESTORS                  | TABLE
 PUBLIC      | PATCH_SET_APPROVALS                  | TABLE
 PUBLIC      | SCHEMA_VERSION                       | TABLE
 PUBLIC      | STARRED_CHANGES                      | TABLE
 PUBLIC      | SUBMODULE_SUBSCRIPTIONS              | TABLE
 PUBLIC      | SYSTEM_CONFIG                        | TABLE
 PUBLIC      | TRACKING_IDS                         | TABLE


gerrit> select * from ACCOUNTS
     -> \g
 REGISTERED_ON           | FULL_NAME   | PREFERRED_EMAIL         | CONTACT_FILED_ON | MAXIMUM_PAGE_SIZE | SHOW_SITE_HEADER | USE_FLASH_CLIPBOARD | DOWNLOAD_URL | DOWNLOAD_COMMAND | COPY_SELF_ON_EMAIL | DATE_FORMAT | TIME_FORMAT | REVERSE_PATCH_SET_ORDER | RELATIVE_DATE_IN_CHANGE_TABLE | COMMENT_VISIBILITY_STRATEGY | DIFF_VIEW | CHANGE_SCREEN | SIZE_BAR_IN_CHANGE_TABLE | LEGACYCID_IN_CHANGE_TABLE | REVIEW_CATEGORY_STRATEGY | INACTIVE | ACCOUNT_ID
 ------------------------+-------------+-------------------------+------------------+-------------------+------------------+---------------------+--------------+------------------+--------------------+-------------+-------------+-------------------------+-------------------------------+-----------------------------+-----------+---------------+--------------------------+---------------------------+--------------------------+----------+-----------
 2020-04-14 11:43:38.132 | NULL        | NULL                    | NULL             | 25                | Y                | Y                   | SSH          | CHECKOUT         | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000000
 2020-04-17 11:47:24.168 | msc-cs      | jiang@126.com | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000001
 2020-04-21 09:10:52.688 | sophie      | NULL                    | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000003
 2020-04-21 14:18:22.056 | NULL        | xxxx@qq.com        | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000004
 2020-04-21 14:39:34.902 | NULL        | qqqq@163.com     | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000005
 2020-04-26 14:44:29.203 | NULL        | NULL                    | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000006
 2020-04-26 14:51:58.234 | NULL        | wwww.mu@126.com | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000007
 2020-04-27 11:04:47.902 | NULL        | ssss@126.com          | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000008
 2020-05-12 15:28:59.151 | NULL        | 33333333@qq.com        | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000038
 2020-06-01 15:43:16.573 | 111222333  | 111222333@163.com          | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000039
 2020-06-02 15:19:06.282 | NULL        | NULL                    | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000040
 2020-04-18 15:19:18.539 | sophie.peng | 111222.333@126.com | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000071
 2020-10-28 13:17:26.515 | NULL        | NULL                    | NULL             | 25                | Y                | Y                   | NULL         | NULL             | N                  | NULL        | NULL        | N                       | N                             | NULL                        | NULL      | NULL          | Y                        | N                         | NULL                     | N        | 1000072
(13 rows; 6 ms)
gerrit> uupdate ACCOUNTS set  PREFERRED_EMAIL=NULL   where  ACCOUNT_ID = 1000006
     -> \g  #输入/g 之后sql才会执行 
gerrit> \q #退出数据库操作


     -> \q
Bye
em@em:/home/gerrit/review_site7.1$ ./bin/gerrit.sh start
Starting Gerrit Code Review: start-stop-daemon: unable to open pidfile '/home/gerrit/review_site7.1/logs/gerrit.pid' for writing (Permission denied)
FAILED
em@em:/home/gerrit/review_site7.1$ sudo ./bin/gerrit.sh start
[sudo] password for em:
Starting Gerrit Code Review: OK

可能出现情况

gerrit> uupdate ACCOUNTS set  PREFERRED_EMAIL=NULL   where  ACCOUNT_ID = 1000006

ERROR: The database is read only; SQL statement:
update ACCOUNTS set  PREFERRED_EMAIL=NULL  where  ACCOUNT_ID = 1000006 [90097-174]
gerrit> chown admin:admin ReviewDB.h2.db               

# ReviewDB.h2.db默认的用户是 gerrit:gerrit 要切换用户,否则权限不够

 

通过sql语句查看 ACCOUNTS 发现 只有FULL_NAME   | PREFERRED_EMAIL  所以管理员在给用户分配权限的时候,查询到两条,

有一种可能就是在验证邮箱的时候, fullname是取的邮箱命,gerrit在校验权限的时候用的fullname和邮箱,所以同事的新旧账号都可以用.

 

 

--结束--

多说一句,1、如果出现和我一样的问题   不建议直接操作数据库,可能会带来风险,上面的sql,只是示例,其实操作挺多的,各个库是有外键关联的.

2、条件允许,建议换一个邮箱重新注册,安全规范.

 

 


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值